2013-10-10 17 views
5

Firefox sekmesini JavaScript'ten kapatmak istiyorum. Lütfen beni yanlış anlamayın. Popup penceresini kapatmaya çalışmıyorum ama tab. JavaScript'in açılmamış pencereyi kapatacağını biliyorum. Bu yüzden kodun altında denedim ancak Firefox'ta değil tüm tarayıcılarda çalışır. İşteFirefox eklentisini javascript'ten kapatın

window.open('','_self',''); 
Window.close(); 
+0

pencere bir üst olmadıkça mümkün değildir. Firefox, pencerenin üst pencereyi kapatmadan kapattığı sürümlerden birinde bu şekilde güncellendi. –

+0

https://support.mozilla.org/en-US/questions/966137 Tarayıcı penceresinden değil, sadece Firefox'ta açılan pencereleri kapatabilirsiniz. veya tarayıcı sekmesi – Rohit

cevap

3

Bir StackOverflow parçacığı öğrenilen bir şeydir (ne yazık ki bu cevaba bağlamak bulamadım):

window.open(document.URL,'_self','resizable=no,top=-245,width=250,height=250,scrollbars=no'); 
window.close(); 

Bu pencere/sekme kapatır. Bir hack olarak karakterize edilebilir. Esasen, tarayıcıyı geçerli pencerenin JavaScript tarafından açılan bir pencere/sekme olduğunu düşünerek aldatmasını sağlar. Kural, JavaScript'in JavaScript tarafından açılan bir pencereyi kapatabildiğinden görüneceği için kural.

Chrome, Firefox'ta çalışır. Internet Explorer'ın IE 6'dan IE 8+'ye kadar değişen davranışları hesaba katması için biraz daha fazla tedaviye ihtiyacı var. İlgilenirse, bunu da ekliyorum. Tek bir/birkaç kullanıcı sayfasını varsa ve Firefox'larınızı erişiminiz varsa

  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(); 
      } 
+3

Hızlı yanıtınız için teşekkür ederiz, ancak yukarıdaki kod FF 24'te çalışmıyor gibi görünüyor. Diğer tarayıcılar için kodum var ama sadece FF 24 ile ilgili bir sorun var. En yeni FF tarayıcısıyla ilgili problem JS'den açılan pencere, bir açılır pencere veya kendi tarayıcısındaki bir pencere ise bunu tanımlayabilir. Yani gnevn kodu çalışmayacak. window.open (document.URL, '_ self', 'resizable = no, top = -245, width = 250, height = 250, scrollbars = no'); window.close(); – user2867978

+0

FF'de [JS güvenlik modeli] (https://support.mozilla.org/en-US/questions/966137) daha da sıkılaştıkları anlaşılıyor. –

+0

Bu soruyu kastediyorsunuz: http://stackoverflow.com/questions/2076299/how-to-close-current-tab-in-a-browser-window Belki bu soru bir kopya olarak işaretlenmelidir. – user2345998

5

Eğer about:config ayarları değiştirebilirsiniz.

dom.allow_scripts_to_close_windows = true 

Bu büyük bir güvenlik sorunu olabilir! (Linux üzerinde Firefox 27 ile test edilmiştir)

2

Bu kodu deneyebilirsiniz. Firefox tarayıcısıysa.

gBrowser.removeCurrentTab();