Kev*_*idt 25 javascript internet-explorer-11
在IE11中浏览我们的网站以查找现在已损坏的内容时,我们注意到以下代码未正确评估为"true":
this.isIEBrowser = false;
if (window.ActiveXObject){
this.isIEBrowser = true;
}
Run Code Online (Sandbox Code Playgroud)
经过进一步研究,似乎typeof(window.ActiveXObject)导致"undefined",而在IE10模式下,它导致"function".当我将window.ActiveXObject添加到监视列表时,它显示为一个函数类型.同样,如果我做typeof(window.ActiveXObject.prototype),我会得到IE11和IE10的"对象".
有没有人知道为什么会改变,或者我可以找到IE10和IE11之间这些类型差异的列表,以便我可以找出其他有哪些重大变化?
更新10/30/13:
当我把它放入时,我原本以为这与IE11 javascript引擎中的Type评价有所不同.我已经意识到这个问题是特定于window.ActiveXObject对象的.所以我把这个问题的名称从"IE11中的Typeof差异"更改为"IE11中的window.ActiveXObject差异"
Joe*_*Joe 20
您不能对IE11使用该检查:
http://msdn.microsoft.com/en-us/library/ie/dn423948%28v=vs.85%29.aspx
从IE11开始,navigator对象支持插件和mimeTypes属性.此外,window.ActiveXObject属性对DOM是隐藏的.(这意味着您不能再使用该属性来检测IE11.)
mhu*_*mhu 20
以下适用于IE11:
this.supportActiveX = ("ActiveXObject" in window);
Run Code Online (Sandbox Code Playgroud)
但这更好,更可靠:
this.supportActiveX =
(Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, "ActiveXObject")) ||
("ActiveXObject" in window);
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码来检测IE
var iedetect = 0;
if(window.ActiveXObject || "ActiveXObject" in window)
{
iedetect = 1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52901 次 |
| 最近记录: |