回答
有沒有辦法抑制按Ctrl +與點擊Internet Explorer中沒有子元素的鏈接 - 如果按Ctrl鍵被按下後,onclick
不會觸發事件在所有的鏈接點擊。看起來微軟不希望你改變這個功能,因爲擔心你可能會混淆用戶。
在發佈此答案之前,我搜索了某種官方確認/解釋,但不幸的是,這個限制沒有在MSDN上的文檔中列出,Google也沒有幫助。儘管如此,它仍然是正確的,自己嘗試一下:
<a href="#" onclick="alert('Hello');">Hello</a>
你會發現,一個按Ctrl +點擊鏈接不會拋出警告框。根據pinkgothic,分配一個子元素到鏈接將解決這個問題。例如:
<a href="#" onclick="alert('Hello');"><span>Hello</span></a>
這工作,因爲點擊觸發的<span>
元件首先,傳播到<a>
元素之前。
是的,我已經計算好了......我將用樹控件的開箱行爲並將其稱爲一天 – sarsnake 2010-04-22 22:36:33
有趣的是,'ctrl + click'的'Hello'工作正常(至少在IE9中)。顯然這只是'事件發生的起點。一個''就足以讓它失去。 – pinkgothic 2012-06-02 12:12:29
@pinkgothic:這聽起來很有希望,如果它也適用於舊版本的IE。 – 2012-06-02 13:59:27
jQuery event.preventDefault()方法或類似方法可以覆蓋您控制的頁面上的默認行爲。
因爲瀏覽器及其行爲是「他們的」行爲,所以改變用戶瀏覽器的行爲通常是不好的做法。
我打算在樹中的節點上做。他們是supp。可點擊但不打開鏈接。我不打算爲傳統鏈接做這件事。 – sarsnake 2010-04-22 21:02:58
添加腳本到錨並返回false
<a href='some.htm' onclick='return false;'></a>
而且它是有效的TreeView中使用的錨,因爲它使樹形更容易獲得。
使用jQuery您可以處理CTRL +點擊自己的功能和返回false,例如
$("a").click(function(event){
if(event.metaKey || event.ctrlKey){
//handle over here
return false;
}
});
這個作品在所有瀏覽器包括Mac
有同樣的問題,因爲運算和解決它通過賦予錨點href屬性一個'#'和一個附加的data-href屬性以及相應的鏈接位置。 你需要一個點擊處理程序來跟隨鏈接的缺點,也右鍵單擊「在新窗口中打開」不會使用這種方法。
eg: In AnchorTag, Use href and data-ref as:
<a id="logout" href="#" data-href="${yourPath}">
And in javascript, use
$("#logout").click(function(e) {
if(e.ctrlKey)
e.preventDefault();
window.location = $(e.target).attr("data-href");
});
將鏈接文本包裹在範圍內。像這樣:
<a href="test.html"><span>click here!</span></a>
- 1. 如何在超鏈接點擊打開新的IE窗口
- 2. 如何打開一個新窗口點擊按鈕
- 3. 按鈕點擊不打開新窗口
- 4. Java通過點擊某個按鈕打開一個新窗口
- 5. 打開一個新窗口,點擊每個鏈接
- 6. PyQt的上點擊新窗口打開
- 7. JApplet打開新窗口,當點擊jButton3
- 8. WPF:點擊按鈕打開新窗口
- 9. 點擊格在新窗口中打開
- 10. IE 8打開一個全屏窗口
- 11. 打開一個新窗口
- 12. 如何打開kendo窗口點擊
- 13. 如何打開每個點擊新窗口
- 14. QT:如何打開一個新窗口
- 15. 點擊按鈕時應該打開一個新窗口?
- 16. 點擊Kendo Grid行並打開一個新的Grid窗口
- 17. JavaScript:強制IE打開新窗口而不是窗口?
- 18. 上點擊打開一個新的窗口,在軌提交
- 19. 打開一個新的窗口點擊子菜單項
- 20. Jquery:點擊按鈕時打開一個新的HTML窗口
- 21. 的Oracle APEX按鈕點擊它會打開新的窗口
- 22. 試圖打開窗口點擊
- 23. setTimeout打開一個新窗口以響應單擊
- 24. 打開新窗口時IE 6和7掛起
- 25. showModalDialog;打開IE瀏覽器中的一個新窗口
- 26. WebBrowser控件打開一個新窗口
- 27. 如何打開一個頁面到一個新的窗口並打印它
- 28. 在行上點擊新窗口中打開div點擊
- 29. 如何從Qt的主窗口打開一個新窗口?
- 30. 如何在焦點瀏覽器中打開一個新窗口
我要說的是,您需要一個非常好的理由來重新定義用戶期望以某種方式工作的操作。 – 2010-04-22 20:58:43
並不打開一個新的TAB – Midhat 2010-04-22 20:59:51
它在IE8中;這也是Firefox和Chrome的默認行爲 - shift-click打開一個新窗口,ctrl-click打開一個新選項卡。其他人可能也是如此。 – GalacticCowboy 2010-04-22 21:01:29