การเขียนบทความนี้ไม่ใช่เพื่อบอกผู้ลงโฆษณาที่เป็นสแปมว่าพวกเขาสามารถแสดงโฆษณาหรือซ่อนหน้าต่างป๊อปอัปในพื้นหลังได้ แต่เพื่อเตือนทุกคนว่ายังมีคุณสมบัติบางอย่างในเคอร์เนล IE ที่สามารถข้ามฟังก์ชันบล็อกโฆษณาของเบราว์เซอร์ส่วนใหญ่ได้ บน 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 = กล่องโต้ตอบ Url;
var sFeathers = "ช่วยเหลือ:ปิด;ปรับขนาด:ปิด;เลื่อน:no;สถานะ:ปิด";
//sUrl = sUrl
window.showModalDialog(sUrl,"",sFeathers);
-
//เปิด URL ที่ระบุ
ฟังก์ชั่น openUrl (sUrl) {
//ที่อยู่ไฟล์หน้าต่างกิริยา
var dialUrl = "txdialog.htm";
//เพิ่มพารามิเตอร์สุ่มเพื่อบังคับให้รีเฟรช ซึ่งไม่จำเป็นที่นี่
dialUrl += "?r=" + Math.random()*100000;
DialogUrl += "&url=" + sUrl;
showDialog(กล่องโต้ตอบ Url);
-
</สคริปต์>
รหัสทดสอบ
<!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 ">
<ประเภทอินพุต=ปุ่ม onclick="openUrl(txtUrl.value)" value='test'>
</ร่างกาย>
</html>
ใส่รหัสต่อไปนี้ในหน้าที่เป็นที่ตั้งของหน้าต่างโมดอล (txdialog.htm):
<ภาษาสคริปต์=จาวาสคริปต์>
functionRequest (strName)
-
var strHref = location.href;
var intPos = strHref.indexOf("?");
var strRight = strHref.substr(intPos + 1);
var arrTmp = strRight.split("&");
สำหรับ (var i = 0; i < arrTmp.length; i++)
-
var arrTemp = arrTmp[i].split("=");
if(arrTemp[0].toUpperCase() == strName.toUpperCase()) กลับ arrTemp[1];
-
กลับ "";
-
var sUrl = คำขอ ("url");
//alert(sUrl);
window.open(sUrl);
หน้าต่าง.ปิด();
</สคริปต์>
ตัวอย่างการดาวน์โหลด:
http://fanrsh.cnblogs.com/articles/280189.html