Bu pencereyi kapatmak istiyor musunuz? İstemini almadan bir tarayıcı penceresini nasıl kapatabilirim ?
Bu window.close();
işlevi kullandığımda komut istemi ortaya çıkıyor .
Bu pencereyi kapatmak istiyor musunuz? İstemini almadan bir tarayıcı penceresini nasıl kapatabilirim ?
Bu window.close();
işlevi kullandığımda komut istemi ortaya çıkıyor .
Yanıtlar:
window.open('', '_self', ''); window.close();
Bu benim için çalışıyor.
showModalDialog
? IE10 üzerinde çalışmıyor
Arkadaşım ... bir yol var ama "hack" onu tarif etmeye başlamıyor. Temelde IE 6 ve 7'deki bir hatadan yararlanmalısınız.
Her seferinde işe yarar!
Aramak yerine window.close()
başka bir sayfaya yönlendirin.
Açılış Sayfası:
alert("No whammies!");
window.open("closer.htm", '_self');
Başka bir sayfaya yönlendirin. Bu, IE'yi bu sayfadaki tarayıcıyı kapatmanıza izin vermesi için kandırır.
Kapanış Sayfası:
<script type="text/javascript">
window.close();
</script>
Harika ha ?!
Komut dosyalarının, bir kullanıcının açtığı bir pencereyi kapatmasına izin verilmez . Bu bir güvenlik riski olarak kabul edilir. Herhangi bir standartta olmamasına rağmen, tüm tarayıcı satıcıları bunu takip eder ( Mozilla belgeleri ). Bu bazı tarayıcılarda meydana gelirse, bu (ideal olarak) çok hızlı bir şekilde yamalanan bir güvenlik hatasıdır.
Bu soruya verilen cevaplardaki hack'lerden hiçbiri artık işe yaramıyor ve eğer birisi başka bir kirli hack ile gelirse, sonunda çalışmayı da durduracaktır.
Bununla mücadele etmek için enerji harcamamanızı ve tarayıcının size bu kadar yardımcı bir şekilde sunduğu yöntemi benimsemenizi öneririm - görünüşte sayfasını kırmadan önce kullanıcıya sorun .
Tarayıcıyı İstem veya Uyarı olmadan kapatmak için kullandığım Javascript işlevi burada, Flash'tan da çağrılabilir. Html dosyasında olmalıdır.
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
,. Açık closeWindows
, Bir önceki hala açıkken yeni bir pencere (aynı sayfa) açar.
(Chrome 26, Internet Explorer 9 ve Safari 5.1.7 Bu eserler olmadan Nick'in cevap ala bir yardımcı sayfasının kullanımı):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Yuvalanmış window.open
, IE'nin Bu pencereyi kapatmak istiyor musunuz istemini görüntülememesini sağlamaktır.
Ne yazık ki Firefox'un pencereyi kapatması imkansız.
Gövde etiketinde:
<body onload="window.open('', '_self', '');">
Pencereyi kapatmak için:
<a href="javascript:window.close();">
Safari 4.0.5, FF for Mac 3.6, IE 8.0 ve FF for Windows 3.5 üzerinde test edilmiştir
Güvenlik nedenleriyle, bir pencere yalnızca JavaScript ile açılmışsa JavaScript'te kapatılabilir. Pencereyi kapatmak için _self
, hedef olarak mevcut pencerenizin üzerine yazacak yeni bir pencere açmanız ve ardından onu kapatmanız gerekir (bunu JavaScript aracılığıyla açıldığından beri yapabilirsiniz).
window.open('', '_self', '');
window.close();
Gönderen burada :
<a href="javascript:window.opener='x';window.close();">Close</a>
Bir window.opener
şeye ayarlaman gerekiyor , yoksa şikayet ediyor.
window.open('', '_self', '').close();
Burada biraz geç özür dilerim ama çözümü en azından benim durumum için buldum. Safari 11.0.3 ve Google Chrome 64.0.3282.167'de test edildi
IE'deki güvenlik geliştirmeleri nedeniyle, bir komut dosyası tarafından açılmadıkça bir pencereyi kapatamazsınız. Dolayısıyla, bunun etrafından dolaşmanın yolu, tarayıcının bu sayfanın bir komut dosyası kullanılarak açıldığını düşünmesine izin vermek ve ardından pencereyi kapatmak olacaktır. Uygulama aşağıdadır.
Bunu dene, bir cazibe gibi çalışıyor!
javascript mevcut pencereyi IE istemi olmadan kapat
<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 işlevi oluşturun
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Şimdi bu kodu yazın ve yukarıdaki JavaScript işlevini çağırın
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Ya da sadece:
<a href="" onclick="closeme();">close</a>
Bu çalışacak :
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Aşağıdaki kodu ASPX'e yerleştirin.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Aşağıdaki kodu düğme tıklama olayının arkasındaki koda yerleştirin.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Kapatmadan önce herhangi bir işleminiz yoksa, aşağıdaki kodu doğrudan ASPX'in kendisine düğme tıklama etiketine koyabilirsiniz.
OnClientClick="CloseWindow();"
Bu yardımcı olur umarım.
Benim durumumda aşağıdaki kod bir php dosyasına gömüldü.
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;
Bu yüzden konsolu açtım ve şunu yazdım
PreventExitPop = false
Bu sorunu çözdü. Bu yüzden, JavaScript kodunu bulun ve değişken (ler) i bulun ve bunları benim durumumda "yanlış" olan uygun bir "değere" atayın
Bunu göndereceğim çünkü şu anda sitem için kullandığım şey bu ve hem Google Chrome'da hem de IE 10'da herhangi bir açılır pencere mesajı almadan çalışıyor:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
Sitemde bir açma / kapama değişkenini oturuma doğrudan yeni bir sayfaya gitmeden kaydetmek için çalıştırmak istediğim bir işlev var, bu yüzden sadece küçük bir açılır pencere web sayfası açıyorum. Bu web sayfası daha sonra onload="window.close();"
işlevle kendini hemen kapatır .
a
ile kullanıyorum target=_blank
, sonra nihayet pencereyi kapatmak için JS kullanıyorum. Bunun amacı, belirli url'nin arka plan resimlerini devre dışı bırakmak için oturuma bir değer kaydetmesidir, ancak burada yakında ajax'ın nasıl yapıldığını anladığımda ajax lehine sileceğim. (hala ipleri öğreniyor)
window.open('','_self').close()