Javascript 如果浏览器是Internet Explorer,则运行脚本

Javascript 如果浏览器是Internet Explorer,则运行脚本,javascript,internet-explorer,if-statement,Javascript,Internet Explorer,If Statement,如果有人使用任何版本的Internet Explorer访问该页面,我希望显示一条警告消息。我读过的所有帖子都说可以使用,但似乎对我不起作用 这是我的密码: <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> . . . <!--[if IE]> <script> $(doc

如果有人使用任何版本的Internet Explorer访问该页面,我希望显示一条警告消息。我读过的所有帖子都说可以使用,但似乎对我不起作用

这是我的密码:

 <head>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
 .
 .
 .
  <!--[if IE]>
  <script>
    $(document).ready(function(){
        alert('This website is not compatible with internet explorer. 
        Please visit the page with any other browser.');
    });
  </script>
  <![endif]-->
 </head>

.
.
.

我做错什么了吗?

试试这样的方法

<!--[if = IE 6]>
<script>
  alert("6");
</script>
<[endif]-->

<!--[if = IE 7]>
<script>
  alert("7");
</script>
<[endif]-->

<!--[if = IE 8]>
<script>
 alert("8");
</script>
<[endif]-->

我没有IE,所以无法测试,抱歉

jQuery还删除并推荐使用

显然,当你试图检测某些特征时,IE会返回false

微软曾经维护过一个页面()来解释如何检测ie,但自2011年以来就不再维护这个页面了

您可以将其用于功能检测,并根据浏览器支持的功能做出决定


恐怕这是我在这方面的最好成绩了。

试试这样吧

<!--[if = IE 6]>
<script>
  alert("6");
</script>
<[endif]-->

<!--[if = IE 7]>
<script>
  alert("7");
</script>
<[endif]-->

<!--[if = IE 8]>
<script>
 alert("8");
</script>
<[endif]-->

我没有IE,所以无法测试,抱歉

jQuery还删除并推荐使用

显然,当你试图检测某些特征时,IE会返回false

微软曾经维护过一个页面()来解释如何检测ie,但自2011年以来就不再维护这个页面了

您可以将其用于功能检测,并根据浏览器支持的功能做出决定


这恐怕是我在这个问题上的最佳答案。

如果您真的希望为所有使用Internet Explorer版本5到9的Internet Explorer用户运行它,那么您的代码就很好了。这些是唯一支持条件注释的版本


一个替代的解决方案,我最喜欢的答案之一在这个网站上可以找到。它已经在Internet Explorer版本6到10中进行了测试,它会查找特定于Internet Explorer的函数,如果该函数存在,它将执行脚本。

如果您确实希望为所有使用Internet Explorer版本5到9的Internet Explorer用户运行它,那么您的代码就可以了。这些是唯一支持条件注释的版本


一个替代的解决方案,我最喜欢的答案之一在这个网站上可以找到。它已经在Internet Explorer版本6到10中进行了测试,它寻找Internet Explorer特定的功能,如果该功能存在,它将执行脚本。

我找到了一种简单、快捷的方法来检测通过javascript使用的实际浏览器,无论是否手动覆盖用户代理,这比jQuery.browser嗅探方法(现在已弃用)更可靠。这个依赖于查看window.navigator.productSub属性

在您的情况下,仅用于检测IE,这应适用于所有现代浏览器:

if(!window.navigator.productSub && window.navigator.appName !== "Opera")
它之所以有效,是因为只有IE和Opera将navigator.productSub设置为“未定义”。闪烁引擎的功能与Webkit相同。Konqueror和Safari的所有分支都有navigator.productSub=20030107

虽然我还没有完全确定这个navigator.productSub对所有浏览器都是可靠的,但以下信息表明它对99%的情况都是安全的,即使是对好的旧Netscape:

PS:有关navigator.productSub时间戳的更多历史记录:

我找到了一种简单、快捷的方法来检测通过javascript使用的实际浏览器,而不管用户代理是否被手动覆盖,这种方法甚至比jQuery.browser嗅探方法(现在已弃用)更可靠。这个依赖于查看window.navigator.productSub属性

在您的情况下,仅用于检测IE,这应适用于所有现代浏览器:

if(!window.navigator.productSub && window.navigator.appName !== "Opera")
它之所以有效,是因为只有IE和Opera将navigator.productSub设置为“未定义”。闪烁引擎的功能与Webkit相同。Konqueror和Safari的所有分支都有navigator.productSub=20030107

虽然我还没有完全确定这个navigator.productSub对所有浏览器都是可靠的,但以下信息表明它对99%的情况都是安全的,即使是对好的旧Netscape:

PS:有关navigator.productSub时间戳的更多历史记录:

“我做错什么了吗?”。我想是的,你为什么要为所有IE用户屏蔽你的页面?IE9和IE10可以正常工作。。。你基本上把你的听众减少了一半。试过在IE10中测试,但似乎也没什么效果。我知道,可能我的代码不好,这就是为什么我要求为所有IE用户显示消息的原因。这根本不是一个坏问题。这是个坏主意。我认为IE10不支持条件注释。您确定在文件开头包含了
?如果你没有,这可能就是很多事情都不起作用的原因。“我做错什么了吗?”。我想是的,你为什么要为所有IE用户屏蔽你的页面?IE9和IE10可以正常工作。。。你基本上把你的听众减少了一半。试过在IE10中测试,但似乎也没什么效果。我知道,可能我的代码不好,这就是为什么我要求为所有IE用户显示消息的原因。这根本不是一个坏问题。这是个坏主意。我认为IE10不支持条件注释。您确定在文件开头包含了
?如果你没有,这可能就是很多事情都不起作用的原因。很高兴有人能说出他们为什么投了反对票!我没有投反对票,但我正在IE10上测试,这个解决方案不起作用。根据上面的@musa,条件语句对IE10不起作用。很高兴有人能说出他们为什么否决了投票!我没有投反对票,但我正在IE10上测试,这个解决方案不起作用。根据上面的@musa,条件语句不适用于IE10。这一定是为什么在IE10上没有一种变通方法适用于我。对于我能为IE10做些什么,有什么建议吗?这一定是为什么在IE10上没有一个变通方法适合我的原因。我能为IE10做些什么,有什么建议吗?