我正在開發一個項目,我需要暫時禁用所有超鏈接,然後在我的彈出式div消失後再次啓用它們。我能夠使用此功能,我寫成功禁用所有鏈接:在JavaScript中啓用和禁用超鏈接
function disableHyperlinks(){
link_targets = Array();
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
link_targets.push(anchors[i].href);
anchors[i].href= "#";
}
}
這也節省了所有的網址,以便它可以把他們回來以後使用此功能:
function enableHyperlinks(){
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
anchors[i].href= link_targets[i];
}
}
以上代碼似乎工作得很好,它將刪除所有鏈接,然後將它們全部返回,但沒有任何問題,但問題是如果在單擊鏈接後運行「啓用」代碼,它幾乎就像設置爲javascript鏈接返回原來的目的地然後 registeri點擊。因此,儘管以這種方式「禁用」,但鏈接仍然以離開頁面結束。
問題證明here
點擊紅色的「L」與白色背景,使我的選擇做出的JavaScript,你會發現什麼,你把你的鼠標會得到一個藍色虛線邊框,我需要能夠「選擇」網頁的一部分,而不用重定向到另一個頁面,如果一個鏈接也被點擊了..任何想法我怎麼能夠做到這一點正確?
(請注意,我試圖避免的JQuery)
好吧,我屈服了,我現在正在使用JQuery。能夠使用preventDefault()在Chrome中解決此問題;但是這並不能解決Firefox中的問題。 – 2012-07-11 20:34:56