当 CTRL +点击链接打开一个新窗口时,是否可以禁止默认的IE 7功能?如果是这样,怎么样?
谢谢!
答案 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