作者KC73 (肯先生)
看板Browsers
標題[轉錄] [-gc-] 偵測 Chrome 是否允許彈出式視窗
時間Sun Oct 10 15:31:23 2010
※ [本文轉錄自 Ajax 看板 #1ChHZa01 ]
作者: 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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.139.62
推 evonre:就像擋廣告,GC只有少部分可以在下載前就過濾 10/10 21:04
→ evonre:最新版ABP or Adthwart 大部分還是先載物件下來再隱藏 10/10 21:06
→ evonre:GC引擎不改的話,這問題沒辦法修正 10/10 21:06
→ KC73:這有沒有可能造成 security 的問題?(還沒想到怎麼造成..) 10/11 12:41
→ KC73:不過 safari 倒是不會這樣... 10/11 12:43
推 drcula:會啊,426很多網頁會塞垃圾,如果防護不夠強很容易中鏢 10/12 14:18
→ danny8376:Chrome本身防護就後夠了啊 不過java+flash是個危險... 10/15 17:36
→ danny8376: 很 10/15 17:37