إن كتابة هذه المقالة لا تهدف إلى إخبار المعلنين غير المرغوب فيهم أنه يمكنهم ظهور إعلانات منبثقة أو إخفاء النوافذ المنبثقة في الخلفية، ولكن لتذكير الجميع بأنه لا تزال هناك بعض الميزات في IE kernel التي يمكنها تجاوز وظيفة حظر الإعلانات في معظم المتصفحات القائمة على على IE، وحتى تجاوز المتصفح نفسه، تنبثق نافذة Internet Explorer الحقيقية مباشرةً. بالطبع، ليس كل شيء، البعض يعمل بشكل أفضل، مثل Maxthon، على الرغم من فتح نافذة جديدة، إلا أنها لا تزال موجودة في Maxthon، بدلاً من ظهور IE في الخلفية، ولكن TT وThe World وما إلى ذلك لا يعمل. مع بعض المتصفحات ويمكن فتحه مباشرة كنافذة IE جديدة. منذ العصور القديمة، تم قمع شيء واحد، وآمل أن يكون هناك حل مناسب.
المبدأ بسيط. تعمل وظيفة حظر الإعلانات المنبثقة في معظم المتصفحات على حظر وظيفة window.open. بالطبع، هناك عدد قليل من الأدوات والبرامج التي يمكنها حظر وظائف showModalDialog وshowModalessDialog، ويمكن لوظيفة فئة showModal فتح نافذة مشروطة طالما أنها يمكن تشغيلها. يقوم IE بتغليف هذه الوظيفة بالكامل، لذلك لا يمكن حظر تشغيل window.open() في وظيفة فئة showModal.
لذلك، إذا كنت تعرف هذا المبدأ، فيمكنك كتابة بعض جافا سكريبت بنفسك واستخدامها.
1. استخدم showModalDialog لفتح صفحة محددة
2. ليست هناك حاجة لوجود محتوى في الصفحة المحددة، ما عليك سوى تنفيذ window.open() لفتح نافذة جديدة.
3. بعد فتح هذه النافذة، قم بإغلاقها في النافذة المشروطة (window.Close())
بهذه الطريقة، يمكن فتح النافذة التي تريد فتحها بشكل غير مباشر من خلال النافذة المشروطة.
الكود ذو الصلة:
الكود في الصفحة الرئيسية:
<script language=javascript>
// فتح نافذة مشروطة
وظيفة showDialog(dialogUrl){
var sUrl = DiagramUrl;
var sFeathers = "help:off;resizable:off;scroll:no;status:off";
//sUrl = sUrl
window.showModalDialog(sUrl,"",sFeathers);
}
// افتح عنوان URL المحدد
وظيفة openUrl(sUrl){
// عنوان ملف النافذة المشروط
var DialogUrl = "txdialog.htm";
// أضف معلمات عشوائية لفرض التحديث، وهو أمر غير مطلوب هنا.
حوارUrl += "?r=" + Math.random()*100000;
DialogueUrl += "&url=" + sUrl;
showDialog(dialogUrl);
}
</script>
رمز الاختبار
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<الرأس>
<title>بدون عنوان</title>
</head>
<body>الرجاء إدخال عنوان URL للنافذة التي تريد فتحها:
<نوع الإدخال = "نص" اسم = "txtUrl" معرف = "txtUrl" القيمة = " http://senyx.cnblogs.com ">
<نوع الإدخال=زر onclick="openUrl(txtUrl.value)" value='test'>
</الجسم>
</html>
ضع الكود التالي في الصفحة التي توجد بها النافذة المشروطة (txdialog.htm):
<لغة البرنامج النصي=جافا سكريبت>
طلب الوظيفة (اسم السلسلة)
{
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 = Request("url");
// تنبيه (sUrl)؛
window.open(sUrl);
window.Close();
</script>
تنزيل المثال:
http://fanrsh.cnblogs.com/articles/280189.html