我想了解一个有趣的复杂情况,如果我将 window.open 作为锚点的 onclick 事件,则会根据需要打开一个新选项卡。如果 onclick 调用一个函数,该函数又会打开一个 window.open 新选项卡,但当前选项卡也会获取新的 url。
我可以在这里演示它 ,当您单击链接时它可以正常工作,而这里的 url 也在结果区域中打开!
谢谢西蒙。
你的第一个case
陈述落空了。您需要添加一个break
:
switch (t) {
case 1:
window.open(url,"_blank");
break;
case 2:
window.location = url;
break;
}
如果没有,将执行第一个匹配的下面的break
每个。case
我也在break
第二种情况下添加了一个,仅仅是因为通常认为总是break
一个情况是好的做法。事实上,JSLint会将缺失标记break
为错误。
在不起作用的示例中,您break
在 switch 语句中缺少 a:
function doclick(t, url) {
switch (t) {
case 1: window.open(url,"_blank"); break;
case 2: window.location = url; break;
}
return false;
}
你需要break;
你case
的s。
只会break;
给你你需要的结果。