使用浏览器IE9和chrome。
试图连接两个网址以形成一个网址:
host1 = "https://home-page.com"
和host2= "https://homet3-page.com"
。
我使用替换函数host2=host1.replace("home","homet3")
将home替换为homet3。
但是这里有两个窗口打开一个带有URL的"https://home-page.com/list/self"
其次是网址为"https://homet3-page.com/me/myself/?browserOffset=0"
以下是代码: Javascript函数和HTML代码:
function openWin() { var host1 = "https://home-page.com"; var host2 = host1.replace("home","homet3"); window.open(host1+"/id?"+host2+"/me/myself/?browserOffset=0"); }
<a class="list" href="../../../list/self" onclick="openWin()"
target="_blank">Click Link</a>
答案 0 :(得分:1)
它会触发两次,因为<a href></a>
标记会触发您进入新页面,onclick="openWin()"
也是如此。仅触发一次的最简单方法是将链接标记更改为另一个标记,例如按钮。
答案 1 :(得分:1)
打开两个窗口的原因是您在target="_blank"
标记中使用<a>
属性。删除此属性,然后编辑处理程序:
function openWin() {
var host1 = "https://home-page.com";
var host2 = host1.replace("home","homet3");
window.open(host1+"/id?"+host2+"/me/myself/?browserOffset=0", "_blank");
}
答案 2 :(得分:0)
在为此挣扎了一段时间后添加了答案 (7/9/2021)。上面的答案之一说要删除 a 标签中的 target="_blank" ,这不起作用。除了我正在路由到单击链接的当前窗口之外,我仍然打开了两个窗口。我发现修复的是向函数调用添加参数:
$(selector).on('click', function(e) {
e.preventDefault();
window.open($(this).attr('href'), '_blank');
});
preventDefault 行阻止了默认操作,即锚标记显然会将您发送到链接。因此,通过阻止默认操作,您只会允许此点击功能通过。