2012-04-18 116 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;會給你你需要的結果。