函数中的window.open替换当前选项卡以及打开新选项卡

时间:2012-04-18 15:41:56

标签: javascript

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

我可以证明它here当你点击链接时它可以正常运行,而here网址也会在结果区域中打开!

由于 Symeon。

4 个答案:

答案 0 :(得分:5)

您的第一个case声明正在落空。您需要添加break

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

如果没有break,那么首次匹配的case下方的每个break都会被执行。

我在第二个案例中也添加了break,仅仅因为它总是被认为是一个好习惯,总是break一个案例。实际上,JSLint会将缺少的{{1}}标记为错误。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

您需要break; case s。

答案 3 :(得分:0)

只有break;会为您提供所需的结果。