Rya*_*hel 2 javascript cross-browser
这是我的代码:
Image.prototype.x = 0;
Image.prototype.y = 0;
var blankImage = new Image();
blankImage.src = "blank.png";
blankImage.x = 16;
blankImage.y = 16;
Run Code Online (Sandbox Code Playgroud)
在Firefox中,如果我这样做blankImage.x将返回16,但在Chrome中它返回0.有什么方法可以解决这个问题吗?我喜欢这个解决我当前问题的方法..
铬已经定义x和y上图像元素.既然你还没有插入的元素到页面中,它x和y会0.
在Chrome控制台中的至少一个图片的页面上运行此操作...
$$("img")[0].hasOwnProperty("x");
Run Code Online (Sandbox Code Playgroud)
您将看到HTMLImageElement已经直接在其上具有该属性,而不是在其prototype对象上.
如果您在控制台中输入此内容,您也可以直观地看到它...
dir($$("img")[0]);
Run Code Online (Sandbox Code Playgroud)
...然后展开对象.
在x和y性质是不可变的无法更改,因此他们保留自己的价值,当你试图去修改它们(就好像他们writable是false).
如果您对a上尚不存在的属性执行相同操作HTMLImageElement,则可以按预期工作.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |