この記事を書くのは、スパム広告主に広告をポップアップ表示したり、バックグラウンドでポップアップ ウィンドウを非表示にしたりできることを伝えるためではなく、IE カーネルには、ほとんどのブラウザ ベースの広告ブロック機能をバイパスできる機能がまだいくつかあることを皆さんに思い出していただくためです。 IE では、ブラウザ自体をバイパスしても、実際の Internet Explorer ウィンドウが直接ポップアップ表示されます。もちろん、すべてではありません。Maxthon など、新しいウィンドウが開いても、バックグラウンドで IE がポップアップするのではなく、Maxthon にまだ存在しますが、TT や The World などは機能しません。一部のブラウザでは、新しい IE ウィンドウとして直接開くことができます。昔から抑圧されてきたことが一つあるので、それに対応する解決策があればいいなと思っています。
原理は簡単です。ほとんどのブラウザのポップアップ広告ブロック機能は、window.open 関数をブロックします。もちろん、showModalDialog 関数と showModalessDialog 関数をブロックできるツールやソフトウェアはいくつかあります。showModal クラス関数は、実行可能な限りモーダル ウィンドウを開くことができます。 IE はこの関数を完全にカプセル化しているため、showModal クラス関数での window.open() の実行はブロックできません。
したがって、この原則を知っていれば、自分でいくつかの JavaScript を作成して使用することができます。
1. showModalDialog を使用して指定したページを開きます
2. 指定したページにコンテンツを含める必要はありません。新しいウィンドウを開くには window.open() を実行するだけです。
3. このウィンドウを開いた後、モーダルウィンドウで閉じます (window.close())
このようにして、開きたいウィンドウをモーダルウィンドウ経由で間接的に開くことができます。
関連コード:
メインページのコード:
<script language=javascript>
//モーダルウィンドウを開く
関数 showDialog(dialogUrl){
var sUrl = ダイアログURL;
var sFeathers = "ヘルプ:オフ;サイズ変更可能:オフ;スクロール:いいえ;ステータス:オフ";
//sURL = sURL
window.showModalDialog(sUrl,"",sFeathers);
}
//指定されたURLを開く
関数 openUrl(sUrl){
//モーダルウィンドウのファイルアドレス
var DialogUrl = "txdialog.htm";
//強制的に更新するためにランダムなパラメータを追加しますが、ここでは必要ありません。
ダイアログ URL += "?r=" + Math.random()*100000;
ダイアログ URL += "&url=" + sUrl;
showDialog(dialogUrl);
}
</script>
テストコード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<頭>
<title>無題</title>
</head>
<body>開きたいウィンドウの URL を入力してください:
<input type="text" name="txtUrl" id="txtUrl" value=" http://senyx.cnblogs.com ">
<input type=button onclick="openUrl(txtUrl.value)" value='test'>
</body>
</html>
モーダル ウィンドウが配置されているページ (txdialog.htm) に次のコードを追加します。
<スクリプト言語=javascript>
functionRequest(strName)
{
var strHref = location.href;
var intPos = strHref.indexOf("?");
var strRight = strHref.substr(intPos + 1);
var arrTmp = strRight.split("&");
for(var i = 0; i < arrTmp.length; i++)
{
var arrTemp = arrTmp[i].split("=");
if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
}
戻る "";
}
var sUrl = リクエスト("url");
//アラート(sURL);
window.open(sURL);
window.close();
</script>
ダウンロード例:
http://fanrsh.cnblogs.com/articles/280189.html