2011-05-20 94 views
3

我很想聽聽你對這個特殊問題的想法:阻止Javascript包括IE6

我使用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文件做到這一點?

有什麼想法?謝謝!

回答

3

你說你試過這樣:

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

正如你所說,這將防止非IE瀏覽器無法看到劇本。

但有一種方法可以指定其他瀏覽器將忽略的條件註釋。所有你需要做的就是放下,使其成爲一個註釋的連字符,像這樣:

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

這將現在所有的瀏覽器,除了IE之前的IE7。

有關更多信息,請參閱http://en.wikipedia.org/wiki/Conditional_comment。 (順便說一句,關閉的話題,我確定你已經聽說過這一百萬次了,但我會認真地建議放棄對IE6的支持 - 實際上沒有人會繼續使用它)

+0

謝謝Spudley,完美的作品!我不知道這種條件評論可能性的特殊變化。 (而且我聽說你有關IE6 ..但是,我的公司正在使用它,因爲它是1000名員工,我沒有太多的選擇...) – Phil 2011-05-20 14:18:30

0

試試這個

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

或像這樣

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

非常接近,但這也會阻止它被包含在非IE瀏覽器中。 – Spudley 2011-05-20 14:08:09

+0

確實,剛剛在Chrome和Safari中試過,它沒有顯示 – Phil 2011-05-20 14:10:02

+0

檢查我的第二個答案,我認爲它現在應該可以工作。 – RaYell 2011-05-20 14:12:36

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

或者只是使用innerHTML兩個腳本標記添加到DOM。

0

您可以使用jQuery的getScript方法

if(!($.browser.msie && $.browser.version=="6.0")) 
    $.getScript('http://platform.linkedin.com/in.js'); 
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>') 
}