首先,我没有真正的问题.我只是出于好奇而问这个问题.
我在使用javascript:void(0)和target="_blank"在同一个链接中意外地遇到了一个奇怪的行为,就像这样.
<a href="javascript:void(0);" target="_blank" /> Link </a>
Run Code Online (Sandbox Code Playgroud)
我发现,Chrome当你点击链接,而正在处理这通常并没有做任何事情IE,并Firefox打开一个空白的新标签.
我的问题是,不javascript:void(0)应该阻止从链接触发任何点击事件,即使它针对新的标签/窗口?为什么要target="_blank"覆盖它呢?
还有什么是最好的方法,比方说,href用一些后端语言填充属性,我更喜欢target="_blank"在href属性旁边硬编码?
<a href=# onclick="return false;">I look like a link!</a>
Run Code Online (Sandbox Code Playgroud)
一直用这个。
编辑:对于您关于 void(0) 的问题, onclick 应该比 href 属性具有更高的优先级,因为它提供了更丰富的功能,并且能够实际阻止 href 操作 - 因此我的return false. 仅当存在 onclick 事件时,href 才适用于机器人和旧浏览器。
此外,是否使用奇怪形式的 URL 执行常规导航由浏览器自行决定。如果链接以哈希开头,则它应该跳转到书签。但是,当它为空或包含其他协议时,这完全取决于浏览器是否决定尝试访问新文档。输入javascript:伪协议传统上用于希望与当前页面一起工作的小书签,因此任何javascript:不这样做document.write()或其他破坏性修改都应该使页面不重新加载。
EDIT2:我不确定 href 中的后端语言是什么意思,但请考虑 HTML 有效data-属性,以便在逻辑上不属于 href 属性的情况下为您的代码提供一些可以使用的内容。
| 归档时间: |
|
| 查看次数: |
7156 次 |
| 最近记录: |