2015-08-27 20 views
0

我試圖在用戶點擊頁面上的任何位置時打開一個新選項卡。我只希望這種情況發生一次,因爲這會讓他們很難在我的網站上瀏覽。這裏是我的代碼:Javascript:onclick window.open不止一次發生

document.onclick = function() { 
    window.open('http://example.com'); 
}; 

我的問題就像我說的,每次用戶點擊時都會發生。我怎樣才能讓它只發生一次?

謝謝!

+0

使用標誌添加一個名字!當點擊第一次執行時更改爲false – user1977204

+0

如果用戶不小心關閉了彈出窗口並想重新打開它,該怎麼辦? – kay

+0

試試這個window.open('http://example.com','_test'); –

回答

2

你可以簡單地保持計數!

<script type="text/javascript"> 
var count=0; 
document.onclick=function() 
{ 
    if(count==0){ 
    window.open('http://example.com'); 
    } 
++count; 
} 
</script> 
+0

這就是我一直在尋找的!謝謝! –

+0

歡迎您:) –

1

只是刪除onclick應該足夠:

document.onclick = function() { 
    window.open('http://example.com'); 
    document.onclick = null; 
}; 

演示:

document.onclick=function() { 
 
    alert('only show once!'); 
 
    // Unset the onclick function. 
 
    document.onclick = null; 
 
}

0

如果你可以使用jQuery:

$(document).one('click', function() { 
    window.open('your-url') 
}); 
+0

您能否解釋_why_這是否有效?謝謝! – Johannes

+0

http://api.jquery.com/one/ –

1

的窗口

window.open('http://example.com','_test'); 
+0

我認爲這是正確的答案,因爲其他答案沒有考慮到用戶可能已經關閉了彈出窗口(意外)並且想要再次打開它。 – kay