Javascript中的变量怎么可能是函数,但不能被调用?
我目前正在调查一个网站,发现了一件奇怪的事情。如果我在开发者控制台中找到一个PNACL嵌入元素,并在Chrome开发控制台中对其进行评估,它会记录Javascript中的变量怎么可能是函数,但不能被调用?,javascript,google-chrome,google-nativeclient,Javascript,Google Chrome,Google Nativeclient,我目前正在调查一个网站,发现了一件奇怪的事情。如果我在开发者控制台中找到一个PNACL嵌入元素,并在Chrome开发控制台中对其进行评估,它会记录>anonymous(),旁边有一个箭头,显示它是一个普通的HTML元素。但是,typeof temp1(变量名)返回函数,但调用它会抛出 Uncaught TypeError: temp1 is not a function at <anonymous>:1:1 铬 这是我一年前申请的 受影响因素: HTMLAllCollec
>anonymous()
,旁边有一个箭头,显示它是一个普通的HTML元素。但是,typeof temp1
(变量名)返回函数,但调用它会抛出
Uncaught TypeError: temp1 is not a function
at <anonymous>:1:1
铬
这是我一年前申请的
受影响因素:
- HTMLAllCollection
- NPObject(?)
- HTMLObjectElement
- HTMLEMBED元素
铬小组的答复:
外部用户没有对此抱怨,所以我正在考虑将其归档
该死的,我是一个“外部用户”
当前状态:已存档
原因:
这些元素有一个[Call]
内部方法,因此根据,typeof
必须返回'function'
。(这使得bug成为规范性bug,而不是实现性bug…你能提供一些代码来重现行为吗?我认为该函数是对
正在集成的插件的引用。如果是这样的话,那么为了访问它,它可以像一个iframe,或者如果它是flash的话,可以通过actionscript。。。?这是什么
嵌入?好的,我刚刚读到了关于PNACL的内容,未知函数必须是C/C++函数,当然JavaScript调试器、C/C++--编译过的--苹果,然后是JS/HTML--脚本和标记橘子无法识别它
var el=document.createElement("embed"); //<embed>
typeof el;// "function"
el.toString(); //"[object HTMLEmbedElement]"
el(); // [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: debugger eval code :: <TOP_LEVEL> :: line 1" data: no]
var el=document.createElement("embed"); // anonymous()
typeof el;// "function"
el.toString(); //"[object HTMLEmbedElement]"
el(); //undefined