我正在创建自己的小部件:
Button = function(){};
Button.prototype = document.createElement('INPUT');
btn = new Button();
btn.type = 'BUTTON';
btn.value = 'test';
btn.onclick = function(){alert('TEST!')}
document.body.appendChild(btn);
如果我只是打开一个新标签并复制并粘贴到 Firefox 的控制台中,这运行得非常好。但是当我将它们放入一个 js 文件(包含在 中$(document).ready
)并将其链接到 HTML 中,然后在浏览器中打开 HTML 时,它失败了。
在线上btn.onclick
,它告诉我:
uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: main.js :: <TOP_LEVEL> :: line 12" data: no]
我有点理解错误,因为我继承了原型,但我继承了new-ed
元素(不直接作用于它),它在控制台中运行正常。谁能指出问题?