pencere.yakın ve öz.yakın Chrome) pencereyi kapatmayın
Sorunu ben window.close()
self.close()
çağırdığınızda pencereyi kapatmak değil. Şimdi Chrome komut dosyası komut dosyası tarafından oluşturulan herhangi bir pencereyi kapatabilirsiniz bir inanç var gibi görünüyor. Bu açıkça yanlış olduğunu ama ne olursa olsun eğer onaylamak için bir uyarı pop up gerektiriyorsa bile yine de yapmanız gerekiyor. Bu bir türlü gerçekleşmiyor.
Bu yüzden herkes gerçek, işlevsel ve kanıtlanmış yöntem kapanış penceresini kullanarak gibi bir şey javascript:window.close()
javascript:self.close()
aslında ne beklenir, ve bir şey olmuyor gayet iyi her tarayıcı DEĞİL Krom tabanlı mı? Herhangi bir öneri büyük mutluluk duyacağız ve Javascript özel çözüm, hiçbir şey bir WordPress kullanmak veya üçüncü taraf uygulaması arıyorum.
CEVAP
Sıradan javascript pencereleri kapat dağınık olamaz. Bu güvenlik özelliği, bir süre önce tanıttı, çeşitli kötü niyetli patlatır ve can sıkma durdurmak.
the latest working spec for window.close()
:
Pencere nesneleri
close()
yöntem ise, aşağıdaki koşulların tümü yerine getirilirse, tarama kapsamında kapatmalısınızBir:
- İlgili tarama kapsamındaBirscript-sıkıca kapatılabilir.
- Görevdeki yazısının tarama kapsamında tarama içeriği ile tanıdıkBir.
- Görevdeki yazısının tarama kapsamında tarama kapsamında gezinmek için izin verilirBir.
Tarama bir bağlamscript-sıkıca kapatılabilireğer yardımcı gezen bir topluluk isebir komut tarafından oluşturulankullanıcı eylemi tarafından aksine) eğer tek bir Belge içeren bir tarama kapsamında ise, ya da.
Bu, küçük bir istisna ilejavascript aynı javascript tarafından açılmış bir pencereyi kapatmak için izin verilmemelidir.
Krom userscripts ancak Firefox -- bu geçerli değil ki istisna değil sağlar. The Firefox implementation flat out states:
Bu yöntem, yalnızca bir komut dosyası
window.open
yöntemini kullanarak açılan pencereler için çağrılacak izin verilir.
Eğer Greasemonkey / Tampermonkey / userscript window.close
kullanmaya çalışırsanız alırsınız:
Firefox:Hata iletisi, "Scripts may not close windows that were not opened by script.
"
Krom:sadece sessizce başarısız olur.
Uzun vadeli çözüm:
Bununla başa çıkmanın en iyi yolubir Chrome uzantısı ve/veya Firefox eklentisi yerine.Bu güvenilir, Geçerli pencereyi kapatabilirsiniz.
Ancak, bu yana güvenlik riskleri, poz verdi window.close
, çok az bir Greasemonkey/Tampermonkey senaryo; Greasemonkey ve Tampermonkey diye makul sağlamak, bu işlevselliği kendi API (aslında ambalaj uzantısı için).
Özellik isteği yapmayı düşünün.
Hacky geçici çözümler:
Kromşu andayeniden yönlendirme" istifade eder. "kendini savunmasız oldu Bu kodu genelde iş için kullanılır:
open(location, '_self').close();
Bu hatalı davranış, IMO, ve şimdi (kabaca Nisan 2015) çoğunlukla engellenir. Hala işe yararenjektekodsadecesekmesini taze açılır ve tarama geçmişinde hiçbir sayfa varsa. Sadece şartlar çok küçük bir set içinde yararlı.
Ancakhala Chrome üzerinde çalışır bir varyasyon () v43 & v44 artı Tampermonkey (v3.11 veya üstü). Kullanımı açık @grant
window.close()
düz. ÖRNEĞİN:
// ==UserScript==
// @name window.close demo
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_addStyle
// ==/UserScript==
setTimeout (window.close, 5000);
Güncelleme için zanetu için teşekkürler. Bu sadece bir SEKME Açık ise orada çalışmayacağını unutmayın. Sadece ek sekmeleri kapatır.
Firefoxbu karşı güvenli çalışırlar. Yani, sadece javascript yolu, güvenlik ayarlarını, bir defada bir tarayıcı sakat.
about:config
açıp ayarlayabilirsiniz
true
allow_scripts_to_close_windows
.
Eğer senaryon kişisel kullanım için ise, devam edin ve bunu. Eğer başka biri bu ayarı açmak için sorarsanız, haklı, önyargı ile reddetmek akıllıca olacaktır.
Şu anda eşdeğer Krom ayarı yok.
Windows çatal en yakın olan ne anlama ...
Bir WordPress kullanmak ebeveyn arasın...
Başka bir div alt kenarına yakın bir k...
Sıfıra yakın yüzen bir değer-böl-sıfır...
T-SQL datetime yuvarlak kullanarak saa...