这个问题是针对JS专家那里。

我使用这个下一段代码来获取所有根DOM在其下存在的JavaScript函数名。

  for(var x in window){ 
        val = ""+window[x];

       if(startsWith(val,"function")){  //only functions 
          alert(val)
       }
   } 

尽管此代码工作完全在Firefox和Chrome它似乎并没有对IE8的工作。 看来,如果功能不IE中的窗口元件存在下

你有什么想法,我会怎么做它在IE浏览器的工作? 谢谢!

没有正确的解决方案

其他提示

找不到任何相当于IE8的,但你可以使用此代码来读取网页的原始JS内容,并对其进行分析,以寻找在那里的任何功能:

var arrScripts = document.getElementsByTagName("script");
for (var i = 0; i < arrScripts.length; i++)
    alert(arrScripts[i].innerHTML);

不优雅的什么浏览器或FF报价,但它仍然会工作。希望有人可以拿出虽然更好的办法。 :)

您可以使用typeof()找出直接不管它是一个功能,而不是将其转换为字符串:

for(var x in window){ 
      val = window[x];
     if(typeof(val)=="function"){  //only functions 
        alert(""+val);
     }
 } 

(注意,我已经将它转换为字符串的alert()所以你可以看到它仍然在做同样的事情,这取决于你的目标是什么什么,你甚至可能不会需要做到这一点)

关于本机的方法: 在IE8,您可以访问 Window.prototype 以让他们:

<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=100" >
<title>Test</title>
</head>
<body>
<ul style="font:normal 12px monospace;">
<script type="text/jscript">
<!--
try{
var win=Window.prototype;
for(var k in win)document.write('<li><strong style="color:blue">'+k+':</strong>'+win[k]+'</li>');
}catch(e){alert('[Window.prototype] not supported');}
//-->
</script>
</ul>
</body>
</html>

请注意IE8具有在IE8模式下运行,否则的窗口(大写W)将是未知的。

用户创建的功能应该是可用的,如果明确指定给窗口对象。

a=function(){}//will not work
function b(){}//will not work
window.c=function(){}//this will work
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top