可能重複:
How can I detect if a browser is blocking a popup?如何拋出一個警告說「請關閉彈出窗口阻止程序」
喜亞姆試圖打開與禁用的工具欄子窗口... ...
如何檢查子窗口是否打開,然後顯示此警報?
有人可以使用代碼幫助.........
可能重複:
How can I detect if a browser is blocking a popup?如何拋出一個警告說「請關閉彈出窗口阻止程序」
喜亞姆試圖打開與禁用的工具欄子窗口... ...
如何檢查子窗口是否打開,然後顯示此警報?
有人可以使用代碼幫助.........
我想,如果彈出窗口被攔截,window.open()
將返回null
,而不是一個窗口對象。您可以在MSDN article閱讀:
如果你不知道的彈出窗口 是否被封鎖,請檢查您的 函數返回一個窗口對象。 如果彈出式窗口 被阻止,如果這些函數返回 null,則可以判斷它是否被阻止。特別是,當您的彈出窗口 被阻止時,您需要檢查 window.open的值以避免 腳本錯誤。
而且,這會給你一些提示有關檢測彈出窗口攔截器的:http://www.visitor-stats.com/articles/detect-popup-blocker.php
你需要給我們您的使用,使我們能夠幫助的JavaScript。你將需要一個'如果'的聲明。
顯示警報這樣在javascript:
警報(「請關閉彈出窗口阻止程序」);
當您使用window.open()
創建新窗口時,它會返回(理論上)打開窗口的句柄。然後,您可以測試手柄來確定窗口是否打開:
var child = window.open("mypopup.html");
// some popup blockers prevent the window from being created (!child) and
// others just close them before they're displayed (child.closed)
if (!child || child.closed) {
// tell the user to turn off their popup blocker
}
彈出窗口是非常侵擾,但是,你應該考慮嘗試顯示頁面中的「彈出式」的信息。尤其要看「對話」腳本。如果您使用的是jQuery,則jQuery UI庫中將包含非常好的Dialog widget。
爲什麼不把你的信息放在正在瀏覽的頁面上,它屬於哪裏? – 2010-04-26 06:29:40
@Carl:看歷史; OP幾次忽視了這個建議,似乎在實施每個人都討厭的可怕的用戶 - 敵對解決方案方面已經死氣沉沉。它甚至似乎是一個登錄表單,這使得用禁用瀏覽器瀏覽器打開的想法更加不合適。 – bobince 2010-04-26 09:31:33
@bobince:是的,完全同意。我傾向於對SEO問題的敵意作出反應(「我怎樣才能在沒有被抓到的情況下對系統進行遊戲?」),這是對用戶願望的更加猥褻的侵犯。我希望這傢伙的公司肚子痛。 – 2010-04-26 11:58:40