Làm cách nào để đóng cửa sổ trình duyệt mà không nhận được lời nhắc Bạn có muốn đóng cửa sổ này không?
Lời nhắc xảy ra khi tôi sử dụng window.close();
hàm.
Làm cách nào để đóng cửa sổ trình duyệt mà không nhận được lời nhắc Bạn có muốn đóng cửa sổ này không?
Lời nhắc xảy ra khi tôi sử dụng window.close();
hàm.
Câu trả lời:
window.open('', '_self', ''); window.close();
Điều này làm việc cho tôi.
showModalDialog
? Nó không làm việc trên IE10
Bạn ơi ... có một cách nhưng "hack" thì không diễn tả nổi. Về cơ bản, bạn phải khai thác một lỗi trong IE 6 & 7.
Hoạt động mọi lúc!
Thay vì gọi window.close()
, hãy chuyển hướng đến một trang khác.
Trang mở đầu:
alert("No whammies!");
window.open("closer.htm", '_self');
Chuyển hướng đến một trang khác. Điều này đánh lừa IE khi cho phép bạn đóng trình duyệt trên trang này.
Trang kết thúc:
<script type="text/javascript">
window.close();
</script>
Tuyệt vời phải không ?!
Tập lệnh không được phép đóng cửa sổ mà người dùng đã mở. Đây được coi là một rủi ro bảo mật. Mặc dù nó không theo bất kỳ tiêu chuẩn nào, nhưng tất cả các nhà cung cấp trình duyệt đều tuân theo điều này (Tài liệu về Mozilla ). Nếu điều này xảy ra trong một số trình duyệt, đó là một lỗi bảo mật (lý tưởng là) được vá rất nhanh.
Không có cách hack nào trong các câu trả lời cho câu hỏi này còn hoạt động nữa và nếu ai đó nghĩ ra một cách hack bẩn thỉu khác, thì cuối cùng nó cũng sẽ ngừng hoạt động.
Tôi khuyên bạn không nên lãng phí sức lực để chống lại điều này và nắm lấy phương pháp mà trình duyệt rất hữu ích cung cấp cho bạn - hãy hỏi người dùng trước khi bạn dường như làm hỏng trang của họ.
Đây là hàm Javascript mà tôi sử dụng để đóng trình duyệt mà không có Lời nhắc hoặc Cảnh báo, nó cũng có thể được gọi từ Flash. Nó phải ở trong tệp 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
. Bật closeWindows
, Nó sẽ mở ra một cửa sổ mới (cùng một trang) trong khi cửa sổ trước đó vẫn đang mở.
Điều này hoạt động trong Chrome 26, Internet Explorer 9 và Safari 5.1.7 ( mà không cần sử dụng trang trợ giúp, ala Nick trả lời):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Việc lồng vào nhau window.open
là làm cho IE không hiển thị lời nhắc Bạn có muốn đóng cửa sổ này không .
Thật không may, không thể khiến Firefox đóng cửa sổ.
Trong thẻ nội dung:
<body onload="window.open('', '_self', '');">
Để đóng cửa sổ:
<a href="javascript:window.close();">
Đã thử nghiệm trên Safari 4.0.5, FF cho Mac 3.6, IE 8.0 và FF cho Windows 3.5
Vì lý do bảo mật, chỉ có thể đóng một cửa sổ bằng JavaScript nếu nó được mở bằng JavaScript. Để đóng cửa sổ, bạn phải mở một cửa sổ mới với _self
mục tiêu, cửa sổ này sẽ ghi đè cửa sổ hiện tại của bạn, sau đó đóng cửa sổ đó (bạn có thể làm vì nó được mở qua JavaScript).
window.open('', '_self', '');
window.close();
Từ đây :
<a href="javascript:window.opener='x';window.close();">Close</a>
Bạn cần phải thiết lập window.opener
một cái gì đó, nếu không nó sẽ phàn nàn.
window.open('', '_self', '').close();
Xin lỗi hơi muộn ở đây, nhưng tôi đã tìm ra giải pháp, ít nhất là cho trường hợp của tôi. Đã thử nghiệm trên Safari 11.0.3 và Google Chrome 64.0.3282.167
Do các cải tiến bảo mật trong IE, bạn không thể đóng một cửa sổ trừ khi nó được mở bằng tập lệnh. Vì vậy, cách giải quyết vấn đề này là để trình duyệt nghĩ rằng trang này được mở bằng một tập lệnh, sau đó đóng cửa sổ. Dưới đây là cách thực hiện.
Hãy thử điều này, nó hoạt động như một sự quyến rũ!
javascript đóng cửa sổ hiện tại mà không cần IE nhắc nhở
<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>
Tạo một hàm JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Bây giờ viết mã này và gọi hàm JavaScript ở trên
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Hoặc đơn giản:
<a href="" onclick="closeme();">close</a>
Điều này sẽ hoạt động:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Đặt mã sau vào ASPX.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Đặt mã sau vào mã đằng sau sự kiện nhấp vào nút.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Nếu bạn không có bất kỳ xử lý nào trước khi đóng thì bạn có thể đặt trực tiếp mã sau vào chính ASPX trong thẻ nhấp vào nút.
OnClientClick="CloseWindow();"
Hi vọng điêu nay co ich.
Trong tình huống của tôi, đoạn mã sau đã được nhúng vào tệp 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;
Vì vậy, tôi đã mở bảng điều khiển và viết như sau
PreventExitPop = false
Điều này đã giải quyết vấn đề. Vì vậy, hãy tìm mã JavaScript và tìm (các) biến và gán chúng cho một "giá trị" thích hợp mà trong trường hợp của tôi là "sai"
Tôi sẽ đăng cái này vì đây là những gì tôi hiện đang sử dụng cho trang web của mình và nó hoạt động trên cả Google Chrome và IE 10 mà không nhận được bất kỳ thông báo bật lên nào:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
Tôi có một chức năng trên trang web của mình mà tôi muốn chạy để lưu một biến bật / tắt vào phiên mà không cần trực tiếp truy cập trang mới nên tôi chỉ cần mở một trang web bật lên nhỏ. Trang web đó sau đó sẽ tự đóng ngay lập tức với onload="window.close();"
hàm.
a
with target=_blank
để mở một cửa sổ bật lên nhỏ tại một url cụ thể, sau đó cuối cùng tôi sử dụng JS để đóng cửa sổ. Mục đích là url cụ thể lưu một giá trị vào phiên để vô hiệu hóa hình nền, mặc dù ở đây tôi sẽ sớm xóa nó theo hướng có lợi cho ajax sau khi tôi tìm ra cách thực hiện ajax. (vẫn đang học những sợi dây thừng persay)
window.open('','_self').close()