Javascript 扩展DOM元素的原型
我想知道是否有可能扩展DOM元素的原型。 我知道Javascript 扩展DOM元素的原型,javascript,oop,prototype,extending,Javascript,Oop,Prototype,Extending,我想知道是否有可能扩展DOM元素的原型。 我知道 Element.prototype.newMethod=function(){} 可以工作,但是这会将其应用于带有任何标记的每个元素,因此a,form,img将实现该方法 我只想将其添加到单个元素。要解决此问题,如前所述,您可以通过以下方式扩展所有元素的原型: Element.prototype.newMethod=function(){} 但是,要将其添加到单个DOM元素,可以执行以下操作: HTMLXyzElement.prototype.n
Element.prototype.newMethod=function(){}代码>
可以工作,但是这会将其应用于带有任何标记的每个元素,因此a
,form
,img
将实现该方法
我只想将其添加到单个元素。要解决此问题,如前所述,您可以通过以下方式扩展所有元素的原型:
Element.prototype.newMethod=function(){}代码>
但是,要将其添加到单个DOM元素,可以执行以下操作:
HTMLXyzElement.prototype.newMethod=function(){}代码>
其中Xyz
是您的元素,例如:
HTMLFormElement
,HTMLImageElement
,htmlanchoreelement
,htmldevelment
。
要找到更多这些,只需在浏览器中打开控制台并开始键入HTML…我试图将以下内容转换为扩展函数HTMLImageElement.prototype.asyncSrc()
,但它说没有看到onload函数<代码>函数asyncSrc(image,src){返回新承诺((resolve,reject)=>{image.onload=()=>resolve();image.onerror=reject;image.src=src;});}
嘿,本杰明,我不确定我是否理解你的问题,你应该有这样的东西:imageelement.prototype.htmsrc=(image,src)=>新承诺((y n)=>this.onload=()=>resolve())