2011-11-03 55 views
1

我想禁用我的頁面中的所有href鏈接。我使用下面的代碼,它只能在IE中正常工作。如何禁用所有在Firefox和Chrome中使用JavaScript的<a>鏈接

var elems = document.getElementsByTagName("*"); 
    var len = elems.length; 
    for (i=0; i<len; i++) { 
      if(elems[i].tagName.toLowerCase() == 'a'){ 
       elems[i].disabled = true;   
      } 
     } 

但我想在所有瀏覽器上工作。 有人可以幫我解決這個問題。

在此先感謝。

回答

13

如果你不想改變鏈接的href,一個可以這樣做太:

window.onload = function() { 
    var anchors = document.getElementsByTagName("a"); 
    for (var i = 0; i < anchors.length; i++) { 
     anchors[i].onclick = function() {return false;}; 
    } 
}; 

在這裏工作演示:http://jsfiddle.net/jfriend00/9YkJQ/

+1

'return'不是函數。這些括號不是必需的。 –

+0

像一個魅力工作........真的非常感謝你jfriend00 – ran

+0

我想補充說,根據ECMAScript標準,不允許返回(false):http://www.ecma-international.org/ ecma-262/5.1 /#sec-12.9 這不是個人喜好的問題,它是不正確的。但是,我不認爲任何瀏覽器都有這種表示法的問題。 –

5

這是一個非常古老的線程,但以防萬一別人說到這個頁面,殘疾人屬性可以通過設置:

element.setAttribute('disabled', 'disabled'); 

這在所有瀏覽器的認可,將禁用鏈接。但是,禁用鏈接上的觸發事件在不同的瀏覽器&版本中處理方式不同。 FF Chrome瀏覽器仍然會觸發onclick事件,其中IE8 +不處於兼容模式,不會觸發事件。如果沒有onclick事件處理程序連接到錨點,則這不是必需的,一旦設置了disabled屬性,正常的href就不會觸發。要停止點擊事件的觸發,上面的代碼將起作用。父母並不是必需的,我個人並不會在這種情況下使用他們,因爲我認爲父母是分組或功能。在以前提供的解決方案中似乎沒有必要。

相關問題