2011-07-12 78 views
1

我的網站完全設計爲無javascript。 JS完全無干擾地添加。從特定瀏覽器的網站中禁用JS

現在我不想在所有瀏覽器(特別是較老的IE版本)上測試JS,因爲它們沒有給出調試反饋,而且這不值得我花時間。

所以我只想在某些瀏覽器上禁用JS(或者相反:在我測試過的瀏覽器上允許它)。

有沒有辦法做到這一點?或者我必須創建一個JS標誌,我必須在每次執行JS之前進行諮詢? (真的不希望這樣做)

+0

你能更「具體」嗎?您想排除哪些瀏覽器(版本)? – Knu

回答

0

我相信這會工作:有這個作爲第一個<script>標籤

if(/* test for browser */) killJS() 
function killJS() { 
    var scripts = document.getElementsByTagName("script") 
    for(var i = 0; i < scripts.length; i++) 
    { 
     var curr = scripts[i] 
     if(curr.parentNode) curr.parentNode.removeChild(curr) 
    } 
} 
+0

看起來像一個很好的起點。我會嘗試一下,如果有效,請接受你的回答。謝謝。 – enyo

0

Cwallenpoole的解決方案看起來對我來說,這是行不通的,除非它呼籲DOM就緒事件,或者至少在其他腳本標記之後,腳本已經運行。

如果所有腳本都在一個地方,或者至少沒有嵌入各地的頁面,也許你應該檢查瀏覽器後,用JavaScript它們包括:

<script> 
    if(/* Browser checks */) 
     document.write('<script src="scripts.js"></script>'); 
</script> 

這是說明了爲什麼保持一個場景您的代碼D.R.Y.和所有在一個地方是重要的。

要檢測瀏覽器,請查看quirksmode,但請注意指向其對象檢測頁面的鏈接,而不是如果它對您的用例更有用。對於後者而言,Yepnope.js是有用的,後者是Modernizr的一部分。

相關問題