我正在使用此代码打开一个新标签:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
新页面也会加载到新标签页中,但在源页面上会显示[object]
而不是链接。有什么问题?
我不想使用
<a href="https://example.com" target="_blank")">linktext</a>
因为我生成链接列表,并且每个链接的目标页面调用方式不同。对我来说最灵活的方法是使用给出语法。
编辑: 这是生成的链接列表:
<a href="javascript:window.open('https://example.com','_blank')">linktext 1</a>
<a href="javascript:jsfunc1(param1)">linktext 2</a>
<a href="javascript:jsfunc2(param2,param3)">linktext 3</a>
生成href属性。我从桌子上得到了一个。
答案 0 :(得分:2)
javascript:
方案网址的目的是从JavaScript生成替换页面。它不是设计用来运行JavaScript以响应客户端而只留下页面 - 这就是事件处理程序的用途。
新的&#34;页面&#34;您看到的是将对新窗口的引用转换为字符串的结果。
最好不要使用JavaScript来避免这种情况:
<a href="https://example.com" target='_blank'>linktext</a>
你也可以通过避免使用javascript:
方案URI并单独绑定你的JS(在href中有合理的回退)来做到这一点:
<a href="https://example.com">linktext</a>
<script>
document.querySelector("a").addEventListener("click", your_function);
function your_function(evt) {
evt.preventDefault();
// Then do whatever else you want the function to do
}
</script>
如果你真的想使用JavaScript URL方案(正如我上面提到的,这是一个肮脏的黑客攻击),你可以确保脚本不使用void
运算符返回任何内容:
<a href="javascript:void (window.open('https://example.com','_blank'))">linktext</a>
答案 1 :(得分:-1)
以上示例效果很好。结帐代码:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
在新标签页中打开链接的其他方式:
<a href="#" onClick="window.open('http://www.yahoo.com', '_blank')">test</a>
没有JS:
<a href="http://yahoo.com" target="_blank">test</a>