document.createElement非法调用

时间:2015-09-06 12:30:51

标签: javascript typeerror

我正在考虑最小化一些javascript代码,但我得到了这个"非法调用"我尝试通过别名

调用函数时出错
var d = document.createElement;
d('input');

有人知道为什么吗? TX

2 个答案:

答案 0 :(得分:5)

看起来这已被其他人解决了。归结为事实

document.createElement检查以确保this引用document。您可以通过执行以下操作来绕过此行为:

A:始终将其用作document.createElement(tagname)

var o = document.createElement
o.call(document, tagname)

C

var d = document.createElement.bind(document); 

(从上面回答)

请参阅http://blog.vjeux.com/2011/javascript/hook-document-createelement.html

答案 1 :(得分:3)

使用

var d = document.createElement.bind(document);

this函数中的d绑定到document对象