4

我想了解一个有趣的复杂情况,如果我将 window.open 作为锚点的 onclick 事件,则会根据需要打开一个新选项卡。如果 onclick 调用一个函数,该函数又会打开一个 window.open 新选项卡,但当前选项卡也会获取新的 url。

我可以在这里演示它 ,当您单击链接时它可以正常工作,而这里的 url 也在结果区域中打开!

谢谢西蒙。

4

4 回答 4

5

你的第一个case陈述落空了。您需要添加一个break

switch (t) {
    case 1: 
        window.open(url,"_blank");
        break;
    case 2: 
        window.location = url;
        break;
}

如果没有,将执行第一个匹配的下面的break每个。case

我也在break第二种情况下添加了一个,仅仅是因为通常认为总是break一个情况是好的做法。事实上,JSLint会将缺失标记break为错误。

于 2012-04-18T15:44:32.683 回答
2

在不起作用的示例中,您break在 switch 语句中缺少 a:

function doclick(t, url) {
    switch (t) {
        case 1: window.open(url,"_blank"); break;
        case 2: window.location = url; break;
    }
    return false;
}​
于 2012-04-18T15:45:39.030 回答
1

你需要break;case的s。

于 2012-04-18T15:45:05.957 回答
0

只会break;给你你需要的结果。

于 2012-04-18T15:55:45.673 回答