作者KC73 (肯先生)
看板Ajax
標題[問題] 偵測 Chrome 是否允許彈出式視窗
時間Thu Oct 7 08:48:34 2010
在寫偵測瀏覽器可不可用彈出視窗的時候,發現一個奇怪的現象,發生在
Chrome 6.0.472.63 上面。
<div id='tt'>test</div>
<script type='text/javascript'>
setTimeout((function(){window.open("ttt.html");}),2000);
</script>
直接點這個連結就是這內容
http://boom.site90.com/tt.html
就是兩秒後會開一個新視窗,不過當然會被封鎖,因為 Chrome 預設不允許彈出式視窗
的。
不過尷尬的是,過了兩秒以後,新視窗雖然沒有彈出來,但是原先的「test」四個字母,
變成「window opened!」。
「window opened!」哪來的?是不被允許的彈出視窗 ttt.html 的內容:
<script type='text/javascript'>
opener.document.getElementById('tt').innerHTML = 'window opened!';
alert('opened!');
</script>
然後那個 alert 沒有執行,但是它的上一行顯然有執行。
各位的 Chrome 也是這樣的狀況嗎?
在 Firefox、IE、Opera 底下,沒有這樣的狀況。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.128.135
推 drcula:Chrome的禁止彈出式視窗是假的,只是看不到,實際上有讀進來 10/09 13:00
→ drcula:上26網站就有發現,明明已經禁止了,也沒視窗彈出,但是背景 10/09 13:00
→ drcula:音樂就開始放............,其他瀏覽器沒遇到這種情況 10/09 13:01
→ KC73:嘖!Google 那麼討厭彈出視窗,結果用這種方式處理彈出視窗.. 10/10 03:37
推 drcula:另外其實你的那行alert('opened!')不是沒有執行,只是跑了 10/10 09:30
→ drcula:被擋住你看不到就是,所以我才不用Chrome還是用回FF 10/10 09:30
※ KC73:轉錄至看板 Browsers 10/10 15:31
推 shyangs:很奇怪的特性 10/10 15:52