IE 7 CTRL +点击打开一个新窗口 - 如何抑制它?

时间:2010-04-22 20:55:13

标签: internet-explorer-7 click ctrl

CTRL +点击链接打开一个新窗口时,是否可以禁止默认的IE 7功能?如果是这样,怎么样?

谢谢!

6 个答案:

答案 0 :(得分:7)

无法抑制 Ctrl +单击Internet Explorer中没有子元素的链接 - onclick事件根本不会触发链接点击按住 Ctrl 键。似乎微软不希望你改变这个功能,因为担心你可能会混淆用户。

我在发布此答案之前搜索了某种官方确认/解释,但遗憾的是,此限制未在MSDN上的文档中列出,Google也没有帮助。然而,它仍然是真的,亲自尝试一下:

<a href="#" onclick="alert('Hello');">Hello</a>

您会发现 Ctrl +点击该链接不会抛出警告框。根据{{​​3}},为链接分配子元素将解决问题。例如:

<a href="#" onclick="alert('Hello');"><span>Hello</span></a>

这是有效的,因为在传播到<span>元素之前,首先会触发<a>元素的点击。

答案 1 :(得分:1)

jQuery event.preventDefault()方法或类似方法可以覆盖您可以控制的网页上的默认行为。

通常不好的做法是在没有充分理由的情况下改变用户浏览器的行为,因为浏览器及其行为是“他们的”。

答案 2 :(得分:1)

与op有同样的问题,并通过给锚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");
});

答案 3 :(得分:1)

将您的链接文字包装在范围内。像这样:

<a href="test.html"><span>click here!</span></a>

答案 4 :(得分:0)

将脚本添加到锚点并返回false

<a href='some.htm' onclick='return false;'></a>

在树视图中使用锚点是有效的,因为它使树视图更易于访问。

答案 5 :(得分:0)

使用jquery,您可以自己处理ctrl + click功能并返回false,例如

$("a").click(function(event){
if(event.metaKey || event.ctrlKey){
 //handle over here 

return false;
}

});

这适用于所有浏览器,包括mac