window.open 在新标签的标签上
window.open on a-tag for new tab
我正在使用此代码打开新标签页:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
新页面也加载到新选项卡中,但在源页面显示的是 [object]
而不是 link。怎么了?
我不想用
<a href="https://example.com" target="_blank")">linktext</a>
因为我生成了一个 link 的列表,并且每个 link 的目标页面被不同地调用。对我来说最灵活的方法是使用 give 语法。
编辑:
这是生成的 linklist:
<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 属性。我从 table.
上面的例子效果很好。签出以下代码:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
在新标签页中打开 Link 的其他方式:
<a href="#" onClick="window.open('http://www.yahoo.com', '_blank')">test</a>
没有 JS :
<a href="http://yahoo.com" target="_blank">test</a>
javascript:
方案 URL 的要点是 从 JavaScript 生成替换页面。它的设计目的不是 运行 JavaScript 响应客户端,同时让页面保持独立——这就是事件处理程序的用途。
您看到的新 "page" 是将对新 window 的引用转换为字符串的结果。
最好不要为此使用 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 方案(正如我上面所建议的,这是一个肮脏的 hack),你可以确保脚本 returns nothing using void
运算符:
<a href="javascript:void (window.open('https://example.com','_blank'))">linktext</a>
我正在使用此代码打开新标签页:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
新页面也加载到新选项卡中,但在源页面显示的是 [object]
而不是 link。怎么了?
我不想用
<a href="https://example.com" target="_blank")">linktext</a>
因为我生成了一个 link 的列表,并且每个 link 的目标页面被不同地调用。对我来说最灵活的方法是使用 give 语法。
编辑: 这是生成的 linklist:
<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 属性。我从 table.
上面的例子效果很好。签出以下代码:
<a href="javascript:window.open('https://example.com','_blank')">linktext</a>
在新标签页中打开 Link 的其他方式:
<a href="#" onClick="window.open('http://www.yahoo.com', '_blank')">test</a>
没有 JS :
<a href="http://yahoo.com" target="_blank">test</a>
javascript:
方案 URL 的要点是 从 JavaScript 生成替换页面。它的设计目的不是 运行 JavaScript 响应客户端,同时让页面保持独立——这就是事件处理程序的用途。
您看到的新 "page" 是将对新 window 的引用转换为字符串的结果。
最好不要为此使用 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 方案(正如我上面所建议的,这是一个肮脏的 hack),你可以确保脚本 returns nothing using void
运算符:
<a href="javascript:void (window.open('https://example.com','_blank'))">linktext</a>