防止在IE6中包含javascript

时间:2011-05-20 14:01:32

标签: javascript internet-explorer-6

我很想听听你对这个特殊问题的看法:

我正在使用LinkedIn的按钮功能,它就像这样:

<script src="http://platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/MemberProfile" data-id="http://www.linkedin.com/pub/profile" data-format="click" data-text="LinkedIn Profile"></script>

唯一的问题是它在IE6中渲染效果非常差,所以我想要做的就是在IE6中隐藏该按钮,我考虑过使用<!--[if gte IE 7]>Javascript code here<![endif]-->,但这也会阻止它加载除了IE之外的任何其他浏览器,另一个选择是使用jquery:if($.browser.msie && $.browser.version=="6.0"){ }但是如何使用SRC javascript文件?

有什么想法?谢谢!

5 个答案:

答案 0 :(得分:3)

你说你试过这个:

<!--[if gte IE 7]>Javascript code here<![endif]-->

正如您所说,这将阻止非IE浏览器查看脚本。

但是有一种方法可以指定其他浏览器会忽略的条件注释。您需要做的就是删除使其成为注释的连字符,如下所示:

<![if gte IE 7]>Javascript code here<![endif]>

现在所有浏览器都可以使用,IE7之前的IE除外。

有关详情,请参阅http://en.wikipedia.org/wiki/Conditional_comment

(顺便说一下,关于主题,我相信你已经听过这一百万次了,但我会认真地建议放弃对IE6的支持 - 实际上没有人再使用它了)

答案 1 :(得分:0)

试试这个

<!--[if ! lte IE 6]>Javascript code here<![endif]-->

或类似的东西

<!--[if (!IE)|(IE gt 6)]>Javascript code here<![endif]-->

答案 2 :(得分:0)

if(! IE6){
    var script = document.createElement("script");
    script.src = "src_to_js_file";
    document.body.appendChild(script);
}

或者只使用innerHTML将两个脚本标记添加到DOM。

答案 3 :(得分:0)

您可以使用jQuery的getScript方法

if(!($.browser.msie && $.browser.version=="6.0"))
    $.getScript('http://platform.linkedin.com/in.js');

答案 4 :(得分:0)

if($.browser.msie && $.browser.version=="6.0"){
  $('head').append('<script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/MemberProfile" data-id="http://www.linkedin.com/pub/profile" data-format="click" data-text="LinkedIn Profile"></script>')
}