iT邦幫忙

0

Javascript/PopUp 如何才能正常彈跳

瀏覽器都有阻擋彈跳視窗的功能,,有甚麼與法或是方法是可以點擊後觸發
或者是避開阻擋 ?

4
fillano
iT邦超人 1 級 ‧ 2015-03-31 13:49:48
最佳解答

補充一下好了。當然如果使用者刻意要檔(例如透過一些plugin),是沒有辦法克服的。但是瀏覽器對於popup視窗是有一定的阻擋/放行規則。對於dom事件來說:

  1. 必須是使用者觸發
  2. 必須是直接觸發,透過ajax, setTimeout這類非同步的方式再來呼叫window.open也會被檔下

另一個方式是透過表單submit:

<pre class="c" name="code">
<form method="post" action="actionhandlerurl" target="_blank">
...
</form>

這樣使用者按下submit時也會另開視窗,而且不會被阻擋。參考:http://jsfiddle.net/24b3Lof0/

2
wiseguy
iT邦超人 1 級 ‧ 2015-03-31 01:22:43

不可能。除非 user 在瀏覽器把你的站設為阻擋彈跳的例外,否則 js 再怎麼強也強不到更改瀏覽器設定。
一般會使用提醒訊息。比如在原網頁秀【您已禁用彈跳視窗,請將本站設為例外】,然後在彈跳視窗的網頁中,把這行訊息清掉或隱藏。
當 user 阻擋了你站台的彈跳視窗,自然會看到這訊息。如果沒阻擋,則彈跳視窗會清掉這行訊息,user 既不會看到提醒,也可正常看到視窗內容。

2
weiclin
iT邦高手 4 級 ‧ 2015-03-31 07:50:38

你沒辦法繞過瀏覽器的阻擋
不過你可以用 js/css 自己做個 alert 視窗的效果
或是用別人寫好的, 例如 http://tristanedwards.me/sweetalert

我要發表回答

立即登入回答