无法检测到我的IE 11浏览器。

4
我正在尝试编写一个针对IE浏览器的代码,它会涉及以下内容:
    if (agent.indexOf("MSIE") != -1)
    {
        alert('IE');
        //IE specific
    }

但是当我尝试使用alert(agent.indexOf("MSIE"));时,它会打印-1。但是在Firefox和Chrome中,我能够成功地使用agent.indexOf()获取我的当前浏览器。

有人能帮我编写特定于浏览器的代码吗?我查看了以前关于特定于浏览器的代码的问题,但没有一个能帮助我解决这个问题。这个问题发生在IE 11版本11.0.24和11.0.25中。谢谢。


这可能会有所帮助:https://msdn.microsoft.com/zh-cn/library/hh869301(v=vs.85).aspx - EylM
1
使用特性检测,而不是浏览器字符串魔法! - Bergi
1
知道代码将如何特定于IE会很好。 - Xotic750
1个回答

1

我相信只有IE支持ActiveXObject,虽然可能有一些扩展程序会给其他浏览器提供某种程度的支持,只要它在浏览器中启用,那么你就可以使用。这可能比测试用户代理更准确,因为用户代理可以很容易地被更改。甚至可以组合多个功能测试,我非常确定还有其他仅由IE支持的功能。

if ('ActiveXObject' in window) { alert('IE'); }

谢谢@Xotic750。ActiveXObject对我有用。但是你能解释一下它是如何工作的吗? - Codebeginner
它是window上的一个对象,是微软专有的对象,因此仅存在于Internet Explorer浏览器中。 - Xotic750

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接