最佳答案
我正在阅读 这个问题,想尝试别名方法而不是函数包装器方法,但我似乎无法让它在 Firefox 3或3.5 beta 4或 Google Chrome 中工作,无论是在调试窗口还是在测试网页中。
萤火虫:
>>> window.myAlias = document.getElementById
function()
>>> myAlias('item1')
>>> window.myAlias('item1')
>>> document.getElementById('item1')
<div id="item1">
如果我把它放在一个网页上,对 myAlias 的调用会给我这个错误:
uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: file:///[...snip...]/test.html :: <TOP_LEVEL> :: line 7" data: no]
Chrome (为清晰起见,插入 > > >) :
>>> window.myAlias = document.getElementById
function getElementById() { [native code] }
>>> window.myAlias('item1')
TypeError: Illegal invocation
>>> document.getElementById('item1')
<div id=?"item1">?
在测试页面中,我得到了相同的“非法调用”。
我做错什么了吗? 还有人能复制这个吗?
另外,奇怪的是,我刚刚尝试了,它在 IE8中工作。