ฉันจะปิดหน้าต่างเบราว์เซอร์โดยไม่ได้รับข้อความDo you want to close this window prompt?
พร้อมท์เกิดขึ้นเมื่อฉันใช้window.close();
ฟังก์ชัน
ฉันจะปิดหน้าต่างเบราว์เซอร์โดยไม่ได้รับข้อความDo you want to close this window prompt?
พร้อมท์เกิดขึ้นเมื่อฉันใช้window.close();
ฟังก์ชัน
คำตอบ:
window.open('', '_self', ''); window.close();
สิ่งนี้ใช้ได้กับฉัน
showModalDialog
? มันไม่ทำงานบน IE10
เพื่อนของฉัน ... มีวิธี แต่ "แฮ็ค" ไม่ได้เริ่มบรรยาย คุณต้องใช้ประโยชน์จากข้อผิดพลาดโดยทั่วไปใน IE 6 & 7
ใช้ได้ผลทุกครั้ง!
แทนที่จะโทรwindow.close()
ให้เปลี่ยนเส้นทางไปยังหน้าอื่น
เปิดหน้า:
alert("No whammies!");
window.open("closer.htm", '_self');
เปลี่ยนเส้นทางไปยังหน้าอื่น นี่หลอก IE ว่าให้คุณปิดเบราว์เซอร์ในหน้านี้
หน้าปิด:
<script type="text/javascript">
window.close();
</script>
น่ากลัวเหรอ!
ไม่อนุญาตให้สคริปต์ปิดหน้าต่างที่ผู้ใช้เปิด นี่ถือเป็นความเสี่ยงด้านความปลอดภัย แม้ว่าจะไม่อยู่ในมาตรฐานใด ๆ แต่ผู้จำหน่ายเบราว์เซอร์ทั้งหมดก็ปฏิบัติตาม ( Mozilla docs ) หากสิ่งนี้เกิดขึ้นในบางเบราว์เซอร์แสดงว่าเป็นจุดบกพร่องด้านความปลอดภัยที่ (ตามหลักการแล้ว) ได้รับการแก้ไขอย่างรวดเร็ว
ไม่มีการแฮ็กใด ๆ ในคำตอบของคำถามนี้อีกต่อไปและหากมีคนคิดแฮ็กสกปรกอีกครั้งในที่สุดมันก็จะหยุดทำงานเช่นกัน
ฉันขอแนะนำให้คุณอย่าเสียพลังงานในการต่อสู้กับสิ่งนี้และยอมรับวิธีการที่เบราว์เซอร์ให้ประโยชน์แก่คุณ - ถามผู้ใช้ก่อนที่คุณจะดูเหมือนว่าหน้าของพวกเขาพัง
นี่คือฟังก์ชั่น Javascript ที่ฉันใช้เพื่อปิดเบราว์เซอร์โดยไม่มีพรอมต์หรือคำเตือนสามารถเรียกจาก Flash ได้ ควรอยู่ในไฟล์ html
function closeWindows() {
var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
//alert(browserName + " : "+browserVer);
//document.getElementById("flashContent").innerHTML = "<br> <font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";
if(browserName == "Microsoft Internet Explorer"){
var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
if (ie7)
{
//This method is required to close a window without any prompt for IE7 & greater versions.
window.open('','_parent','');
window.close();
}
else
{
//This method is required to close a window without any prompt for IE6
this.focus();
self.opener = this;
self.close();
}
}else{
//For NON-IE Browsers except Firefox which doesnt support Auto Close
try{
this.focus();
self.opener = this;
self.close();
}
catch(e){
}
try{
window.open('','_self','');
window.close();
}
catch(e){
}
}
}
showModalDialog
. ในวันcloseWindows
นี้ได้เปิดหน้าต่างใหม่ (หน้าเดียวกัน) ในขณะที่ก่อนหน้านี้หนึ่งยังคงเปิดอยู่
สิ่งนี้ใช้งานได้ใน Chrome 26, Internet Explorer 9 และ Safari 5.1.7 ( โดยไม่ต้องใช้หน้าผู้ช่วยเหลือคำตอบของ Ala Nick):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
การซ้อนกันwindow.open
คือการทำให้ IE ไม่แสดงข้อความDo you want to close this window prompt
น่าเสียดายที่ไม่สามารถให้ Firefox ปิดหน้าต่างได้
ในแท็กเนื้อหา:
<body onload="window.open('', '_self', '');">
ในการปิดหน้าต่าง:
<a href="javascript:window.close();">
ทดสอบบน Safari 4.0.5, FF สำหรับ Mac 3.6, IE 8.0 และ FF สำหรับ Windows 3.5
ด้วยเหตุผลด้านความปลอดภัยหน้าต่างจะปิดได้ใน JavaScript ถ้าเปิดโดย JavaScript เท่านั้น ในการปิดหน้าต่างคุณต้องเปิดหน้าต่างใหม่โดย_self
ให้เป็นเป้าหมายซึ่งจะเขียนทับหน้าต่างปัจจุบันของคุณจากนั้นปิดหน้าต่างนั้น (ซึ่งคุณสามารถทำได้ตั้งแต่เปิดผ่าน JavaScript)
window.open('', '_self', '');
window.close();
จากที่นี่ :
<a href="javascript:window.opener='x';window.close();">Close</a>
คุณต้องตั้งค่าwindow.opener
เป็นบางอย่างมิฉะนั้นจะบ่น
window.open('', '_self', '').close();
ขออภัยที่นี่ช้าไปหน่อย แต่ฉันพบวิธีแก้ปัญหาอย่างน้อยก็สำหรับกรณีของฉัน ทดสอบบน Safari 11.0.3 และ Google Chrome 64.0.3282.167
เนื่องจากการปรับปรุงความปลอดภัยใน IE คุณจึงไม่สามารถปิดหน้าต่างได้เว้นแต่จะเปิดโดยสคริปต์ วิธีแก้ปัญหานี้คือให้เบราว์เซอร์คิดว่าหน้านี้เปิดโดยใช้สคริปต์จากนั้นจึงปิดหน้าต่าง ด้านล่างนี้คือการนำไปใช้งาน
ลองทำแบบนี้ดูมีเสน่ห์!
javascript ปิดหน้าต่างปัจจุบันโดยไม่ต้องแจ้ง IE
<script type="text/javascript">
function closeWP() {
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else {
window.close();
}
}
</script>
สร้างฟังก์ชัน JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
ตอนนี้เขียนโค้ดนี้และเรียกใช้ฟังก์ชัน JavaScript ด้านบน
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
หรือเพียงแค่:
<a href="" onclick="closeme();">close</a>
สิ่งนี้จะได้ผล:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
เบราว์เซอร์บ่นเพราะคุณกำลังใช้งาน JavaScript เพื่อปิดหน้าต่างที่ไม่ได้เปิด JavaScript window.open('foo.html');
กล่าวคือ
ทางออกที่ดีที่สุดที่ฉันพบคือ:
this.focus();
self.opener=this;
self.close();
วางรหัสต่อไปนี้ใน ASPX
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
วางรหัสต่อไปนี้ในโค้ดด้านหลังเหตุการณ์การคลิกปุ่ม
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
หากคุณไม่มีการประมวลผลใด ๆ ก่อนปิดคุณสามารถใส่รหัสต่อไปนี้ลงใน ASPX ได้โดยตรงในแท็กคลิกปุ่ม
OnClientClick="CloseWindow();"
หวังว่านี่จะช่วยได้
ในสถานการณ์ของฉันรหัสต่อไปนี้ถูกฝังลงในไฟล์ php
var PreventExitPop = true;
function ExitPop() {
if (PreventExitPop != false) {
return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
}
}
window.onbeforeunload = ExitPop;
ดังนั้นฉันจึงเปิดคอนโซลและเขียนสิ่งต่อไปนี้
PreventExitPop = false
วิธีนี้ช่วยแก้ปัญหาได้ ดังนั้นค้นหาโค้ด JavaScript และค้นหาตัวแปรและกำหนดให้เป็น "ค่า" ที่เหมาะสมซึ่งในกรณีของฉันคือ "เท็จ"
ฉันจะโพสต์สิ่งนี้เพราะนี่คือสิ่งที่ฉันกำลังใช้กับไซต์ของฉันและมันใช้ได้ทั้งใน Google Chrome และ IE 10 โดยไม่ได้รับข้อความป๊อปอัป
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
ฉันมีฟังก์ชันบนไซต์ของฉันที่ฉันต้องการเรียกใช้เพื่อบันทึกตัวแปรเปิด / ปิดไปยังเซสชันโดยไม่ต้องไปที่หน้าใหม่โดยตรงดังนั้นฉันจึงเปิดหน้าเว็บป๊อปอัปเล็ก ๆ จากนั้นเว็บเพจนั้นจะปิดตัวเองทันทีด้วยonload="window.close();"
ฟังก์ชัน
a
กับtarget=_blank
เพื่อเปิดหน้าต่างป๊อปอัปเล็ก ๆ ที่ URL เฉพาะจากนั้นในที่สุดฉันก็ใช้ JS เพื่อปิดหน้าต่าง จุดประสงค์คือ URL ที่ระบุจะบันทึกค่าให้กับเซสชันเพื่อปิดการใช้งานภาพพื้นหลังแม้ว่าในไม่ช้าฉันจะลบออกเพื่อสนับสนุน ajax เมื่อฉันรู้วิธีทำ ajax (ยังคงเรียนรู้เชือกต่อไป)
window.open('','_self').close()