我试图创建一个陷阱属性的Proxy对象,Image但即使使用空处理程序,我收到一条错误消息.
TypeError:Node.appendChild的参数1没有实现接口Node.
代理对象假设充当目标对象,所以这让我感到困惑.据我所知,你也应该能够使用DOM节点(?).
另外:我无法开始加载图像并onload在设置src属性时触发处理程序.
我应该如何使用代理,以便我可以"接管"例如"src"属性,否则它会像常规图像对象一样?
我的代码
'use strict';
//--- normal image use ---
var imgNormal = new Image();
imgNormal.onload = function(){
console.log('Normal loaded OK');
document.body.appendChild(imgNormal);
};
imgNormal.src = 'https://i.imgur.com/zn7O7QWb.jpg';
//--- proxy image ---
var imgProxy = new Proxy(Image, { // I also tried with 'new Image()' and HTMLImageElement
set: function(a,b,c,d){
console.log('set '+b);
return Reflect.set(a,b,c,d);
}
});
imgProxy.onload = function(){
console.log('Proxy loaded OK');
document.body.appendChild(imgProxy);
};
imgProxy.src = 'https://i.imgur.com/zn7O7QWb.jpg';
document.body.appendChild(imgProxy); …Run Code Online (Sandbox Code Playgroud)