1

ポップアップブロッカーの検出に関する多くの記事をjavascriptコードで読んだことがありますが、私が現在行っている問題の答えを見つけることができませんでした。ポップアップブロッカーIE8とセキュリティゾーン

問題は、対象のURLが外部Webサイトで、ブラウザ(IE8)がウィンドウオブジェクトへのアクセスを妨げている、つまりjavascriptコードwindow.open()がポップアップを開くことが許可されているにもかかわらずヌルを返します。逆に、サイトのローカルページの場合、javascriptはウィンドウオブジェクトを返します。

このように、インターネットオプションのどこかにセキュリティ設定があると思われるので、開いているウィンドウのハンドラを取得できません。その場合、誰かがjavascriptでそれを検出する方法を知っていますか?

次のように私が使用していたコードがあり、それはこの状況を検出することはできません。

var popup = window.open("http://www.externalsite.com&param1=value1", "_blank", ""); 
if (!popup) { 
alert('Cannot preview this page because pop-ups are blocked by your browser'); 
} else { 
if (popup != null) { popup.focus(); } 
} 

答えて

1

ゾーンとインテグリティのレベルを横切るウィンドウを開くと(イントラネットページの実行中程度で実行しているインターネットページは低速で実行されます。またはLowで実行されているインターネットサイトでは、メディアを実行している信頼済みサイトが開かれます)。それはポップアップブロッカーとは関係ありません。

1

私はIE8

コードが http://javascript.internet.com/snippets/popup-blocker-detection-2.htmlないで見つけ
function detectPopupBlocker() { 
     var test = window.open(null,"","width=100,height=100"); 
     try { 
       test.close(); 
       alert("Pop-ups not blocked."); 
     } catch (e) { 
       alert("Pop-ups blocked."); 
     } 
} 

// Created by: Simon Willison 
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent 
function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
    window.onload = func; 
    } else { 
    window.onload = function() { 
     if (oldonload) { 
     oldonload(); 
     } 
     func(); 
    } 
    } 
} 

addLoadEvent(detectPopupBlocker); 

でそれをテストしたときは、次のコードは動作しますニック製