2012-07-06 229 views
0

是否可以通過PHP檢查我的瀏覽器FF/Chrome/IE/Safari彈出窗口阻止程序是否允許/啓用?瀏覽器彈出窗口阻止程序已關閉/打開

+1

我認爲沒有辦法。 你可以嘗試一些這樣的JavaScript [測試彈出式窗口攔截器使用JavaScript](http://davidwalsh.name/popup-block-javascript) – 2012-07-06 07:53:15

+0

你是什麼意思的「允許」?你有一個PHP文件,你可以用一個彈出窗口攔截器的瀏覽器調用它,對嗎?那麼,誰決定什麼時候允許什麼以及理由如何?您需要先告訴我們,然後才能告訴您是否可以。或者我只是沒有得到你的問題,請澄清。 – Nanne 2012-07-06 07:55:31

+0

@BasicBridge:是最好的選擇! – Suleman 2012-07-06 07:55:33

回答

1

彈出廣告攔截,但也許你可以做這樣的事情:

  • 觸發測試彈出窗口並立即用javascript關閉它。在此過程中檢測彈出是否成功或阻止。

  • 一旦完成,向服務器發起AJAX請求並保存是否被彈出窗口阻止程序阻止在會話變量中。

不過,我真的不明白爲什麼你的服務器端代碼需要知道客戶端是否有積極的彈出窗口攔截器,除非你正在收集數據作統計用途。

+0

耶在JS中需要它。 – Suleman 2012-07-06 08:02:05

1

你可以嘗試這樣的事情:

<script language="javascript"> 

var myWindow; 

myWindow= window.open(...); 
if (myWindow.closed) { 
    //pop up disabled 
} 

</script> 

但只能在客戶端上檢測到它不是在PHP ^^

+0

這對你有好處嗎? – 2012-07-06 09:15:18

1

因爲PHP是一種服務器端語言,我很積極,它不可能只使用PHP。像其他答案一樣,在這個任務中使用Javascript(也許是AJAX?)。

PHP可能知道關於瀏覽器的「一點點」,但只要是請求標頭中的內容。這包括用戶代理標題,告訴您用戶正在使用哪個瀏覽器,並且您的策略顯示您的信息可以取決於用戶代理(很多網頁在從手機瀏覽器)。

相關問題