修改键对超链接点击的行为

时间:2013-02-20 09:27:20

标签: html html5 web w3c web-standards

按下修饰键是否存在超链接点击行为的标准?
例如,如果按下Ctrl,firefox会创建一个新选项卡,如果按下Shift,则会创建一个新窗口。
Opera在Ctrl上创建了新的未聚焦标签,并专注于Shift 是完全取决于浏览器还是有一些指导方针,应该考虑哪些?

2 个答案:

答案 0 :(得分:0)

这是依赖于浏览器的,并且比你想象的要复杂得多:还有中键点击(不会触发onclick),有苹果键盘在哪里&#39 ; s命令+单击(不是Ctrl +单击),"在新选项卡中打开链接"上下文菜单,移动浏览器等等。

你说in a comment

  

我正在为我的网站写一个js,我想知道用户期望的行为,点击带有绑定的onClick事件的超链接。

建议的方法是尽可能在href元素中提供实际的URL,让浏览器处理在新选项卡中打开它。您可以通过从事件处理程序中取消事件来覆盖简单左键单击的默认行为。

答案 1 :(得分:-1)

您可以使用

target="_blank"

属性强制网页在新标签/窗口中打开(取决于浏览器)。例如:

<a href="www.google.com" taget="_blank">

- 更新 -

我做了一些调查,看不到有关超链接和修饰符的任何内容,我能想到的唯一想法是处理javascript中的修饰键。

如果在新标签/窗口中弹出新页面的问题,您可以执行以下操作以禁用它。但是,如果用户禁用了javascript,那么该链接根本不会起作用,这是不理想的。

<HTML>
<HEAD>
<TITLE>Event Modifiers</TITLE>
<SCRIPT LANGUAGE="JavaScript">

function checkMods(event){
       if(event.shiftKey) {
        alert("Shift, held.");
        return false
       }
       else{
        window.location = "http://www.google.com/"
        return true
       }

}

</SCRIPT>
</HEAD>
<BODY>
<H1>Event Modifiers</H1>
<HR>
<P>This link wont work if Shift is held while clicking. 
<A HREF="javascript:void(0)" onClick="return checkMods(event)">
this link</A>
</BODY>
</HTML>
相关问题