JS的最佳实践 - 在href或onclick中的window.open()
Best Practice for JS - window.open() in href or in onclick?
只是一个关于优化的问题,介于:
<a href="#" onClick="javascript:window.open('myUrl.com');">link-1</a>
和:
<a href="javascript:window.open('myUrlBis.com');">link-2</a>
一个比另一个好吗?还是更兼容?谢谢。
最佳做法是使用 target
属性:
<a href="http://myUrl.com" target="_blank">link-1</a>
如果这不适合,我可以选择click
处理程序(理想情况下不通过属性分配)。
两者都不是
使用href
和target
使其成为常规链接
<a id='my-link' target="_blank" href="http://myUrlBis.com">link-2</a>
如果您需要使用 JavaScript 对点击进行一些处理,您可以使用以下内容
document.getElementById("my-link").onclick = function(e) {
// Do some processing here, maybe
window.location = this.href
// Return false to prevent the default action if you did redirect with script
return false;
}
No JavaScript
<a target="_blank" href="myUrlBis.com">link</a>
使用 JavaScript
<a target="_blank" href="http://www.example.com" id="myLink">link</a>
<script>
document.getElementById("myLink").onclick = function(){ //attach click event to link
var winPop = window.open(this.href); //`this` is reference to link, get href
return false; //prevent click event from clicking the link
}
</script>
JSFiddle 示例
下面的代码应该没问题。
<a href="javascript:void(0);" onclick="window.open(url)">
在IE(版本:11)中发现以下代码的问题
<a onclick="javascript:window.open(url)">
问题:当我们在 href 属性中有 javascript window.open 代码时,父窗口在 IE 中刷新。
相关文章:
- 使用Javascript中的onclick方法
- 让粒子出现在p5.js中的OnClick函数中
- jQuery相当于Ajax调用中的onclick
- 来自jquery的.append中img标记中的onclick属性
- 在php中,使用正则表达式的函数中的Onclick事件
- HTML中的onclick事件<选择>无法运行Chrome和Safari
- 纯JavaScript中的Onclick滑块 - 事件不会改变CSS值
- 如何从 HTML 中的 onclick 调用 ASP 函数
- 如何在 Javascript 中的 onClick 事件中重新加载选择标记选项
- 将引号传递给 Javascript 函数中 html 元素中的 onclick 事件
- 我可以在 Javascript 中的 onclick 中的“this”之后插入字符串吗?
- 将多个操作传递给反应引导按钮中的 onClick 事件
- 是否可以在 HTML 中的“onclick”上运行.exe或.bat文件
- JavaScript 中的 Onclick 事件
- 不带jQuery的html日期选择器中的OnClick事件
- 使用jquery中的onclick事件更改HTML属性值
- 将对象作为参数传递给手把模板中的onclick方法
- 如何在一个onclick函数中添加两个响应?html中的onclick是
- 在组合框中的 OnClick 事件上传递两个变量
- html中的onclick在ios7_0用户代理中不起作用