Como posso fechar uma janela com Javascript no Mozilla Firefox 3?

Eu preciso fechar a guia que exibe minha página da Web, pelo clique de um botão. Mas o firefox não permite fechar a janela pelo javascript, desde que não seja aberto pelo javascript. Se eu definir o valor de dom.allow_scripts_to_close_windows para ser “true”, até mesmo o normal window.close() também funciona. Mas isso não é uma boa solução. 🙁

Eu tentei a seguinte solução sugerida em um dos fóruns:

  function closeWindow() { window.open('','_parent',''); window.close(); }  

É suposto enganar o navegador em pensar que ele foi realmente aberto por javascript, mas isso não funciona no Firefox 3.

Alguém pode sugerir uma solução alternativa?

 function closeWindow() { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); alert("This will close the window"); window.open('','_self'); window.close(); } closeWindow(); 

Por motivos de segurança, seu script não pode fechar uma janela / guia que não foi aberta.

A solução é apresentar o prompt de idade em um ponto anterior no histórico de navegação. Em seguida, você pode optar por permitir que eles acessem seu site ou não com base em suas informações.

Em vez de fechar a página que apresenta o prompt, você pode simplesmente dizer “Desculpe” ou redirect o usuário para a página inicial dele.

Este código funciona tanto para o IE 7 como para a versão mais recente do Mozilla, embora a configuração padrão do mozilla não permita fechar uma janela através do javascript.

Aqui está o código:

function F11 () {window.open (”, ‘_ parent’, ”); window.open (“login.aspx”, “”, “channelmode”); window.close (); }

Para alterar a configuração padrão:

1.type “about: config” na barra de endereços do firefox e digite;

2. certifique-se de que o seu “dom.allow_scripts_to_close_windows” seja verdadeiro

self.close () não funciona, tem certeza de que você está fechando uma janela e não um pop-up gerado por script?

vocês podem querer olhar para isto: https://bugzilla.mozilla.org/show_bug.cgi?id=183697

Do ponto de vista da experiência do usuário, você não quer que uma ação importante seja feita passivamente.

Algo importante como o fechamento de uma janela deve ser o resultado de uma ação do usuário.

Se o pessoal do navegador vê isso como um problema de segurança e / ou de usabilidade, a resposta à sua pergunta é simplesmente não fechar a janela, pois, por definição, eles encontrarão soluções para a sua solução de qualquer maneira. Há um bom resumo sobre o motivo pelo qual a escolha foi no database de bugs do firefox https://bugzilla.mozilla.org/show_bug.cgi?id=190515#c70

Então o que você pode fazer?

Altere a especificação do seu site para que você tenha uma solução para essas pessoas. Você poderia, por exemplo, ter a oportunidade de direcioná-los a um parceiro.

Isto é, veja isso como uma transferência para alguém que (potencialmente) precisa disso. Como exemplo, Hanselman tinha um artigo recente sobre o que fazer na outra situação semelhante, ou seja, erros 404: http://www.hanselman.com/blog/PutMissingKidsOnYour404PageEntirelyClientSideSolutionWithYQLJQueryAndMSAjax.aspx

Este código funcionará definitivamente

 function closing() { var answer = confirm("Do you wnat to close this window ?"); if (answer){ netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite'); window.close(); } else{ stop; } }