2012-04-18 117 views
4

我有一个有趣的复杂功能,我想了解,如果我有window.open作为onclick事件的锚点,将根据需要打开一个新选项卡。如果onclick调用一个函数,该函数又会打开一个窗口。打开一个新选项卡,但当前选项卡也会获取新的URL。window.open在函数中替换当前选项卡以及打开新选项卡

我可以证明它here它工作正常,当你点击链接时,here URL也在结果区域打开!

谢谢 Symeon。

回答

5

您的第一条case声明正在下降。您需要添加一个break:下面这是第一个匹配的将被执行的一个

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

没有break,每case

我也在第二个案例中增加了一个break,仅仅是因为它总是被认为是良好的做法总是break的情况。实际上,JSLint会将缺少的break标记为错误。

+0

谢谢 - 我不能相信我没有发现那个!我已经更新了当然jsfiddle .... – 2012-04-18 15:46:10

1

您需要break;您的case s。

2

在不工作的例子,你缺少的switch语句的break

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

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