我有像這樣防止默認錨行爲IE7沒有庫/框架
<a onclick="return false;" href="http://somesite.com">my link</a>
在Firefox,Chrome和Safari這個鏈接一個鏈接,當你點擊它沒有做任何事情。在IE7中,鏈接仍然會到http://somesite.com。有沒有辦法來防止這種情況發生?
我沒有使用任何框架像jquery,只是原始的JavaScript。
我有像這樣防止默認錨行爲IE7沒有庫/框架
<a onclick="return false;" href="http://somesite.com">my link</a>
在Firefox,Chrome和Safari這個鏈接一個鏈接,當你點擊它沒有做任何事情。在IE7中,鏈接仍然會到http://somesite.com。有沒有辦法來防止這種情況發生?
我沒有使用任何框架像jquery,只是原始的JavaScript。
試試這個:
<a onclick="window.event && (event.returnValue = false); return false;" href="http://somesite.com">hi</a>
根據一些網站,event.returnValue = false;
應該有所幫助。當然,其他瀏覽器會拋出一個錯誤,因爲它們不支持returnValue,所以你應該檢查它。 This article甚至建議取消href屬性上單擊:-)
故障保存應
<a onclick="...; if (window.event && typeof window.event.returnValue == 'boolean') return window.event.returnValue = false; return false;" href="http://somesite.com">hi</a>
使用JS添加的事件監聽,你也可以使用符合標準的瀏覽器event.preventDefault();
其中事件賦予偵聽器函數的參數。
一個簡單的"return false;"
一直在IE中工作。我沒有可用的IE7進行測試,但它在IE8中對我很有用,而且我確定它曾經在IE6中工作。
不過,你可以嘗試像以下:
<a onclick="return cancelDefault();" href="http://somesite.com">my link</a>
<script>
function cancelDefault(e) {
if (!e) e = window.event;
e.returnValue = false;
return false;
}
</script>
的瀏覽器不支持returnValue
將其忽略:如果您在事件創建該名稱的新的財產,他們不介意目的。
我想出了這個(與其他一些答案的靈感)
<script>
function stopIEAnchor(){
if (typeof window.event !== "undefined")
return window.event.returnValue = false;
return false;
}
</script>
<a onclick="return stopIEAnchor()" href="http://somesite.com">link</a>
我將保持這個問題開了一段時間,看看我們是否能得到了解決或輸入。
這很好,但我不認爲你需要第二個返回false;謝謝 – Mike 2011-12-20 20:34:09
這隻會在IE中起作用,並在其他瀏覽器中引發「未定義的事件」 - 錯誤。 – Bergi 2011-12-20 20:39:14
我已將上述評論確認回繪圖板。 – Mike 2011-12-20 20:41:33