Pergunta

Suponha, eu quero ter um link ou um botão que quando o usuário clicar nele, irá fechar o navegador sem qualquer caixa de diálogo de confirmação.

Ele precisa de trabalho no Internet Explorer 6, 7, 8 e Firefox.

Foi útil?

Solução

Eu fiz alguma pesquisa e descobri que não é possível janela / aba estreita no Firefox se essa janela / aba não é aberto através de JavaScript ou se o guia tem páginas de história> 1 (ie Voltar botão clicável porque você Navegar pelas páginas Web).

maneira de fazer no Firefox: Excluir o histórico em primeiro lugar. Em seguida, você pode fechar a janela sem caixa de confirmação. Eu não tentei esta solução. Acontece que eu ler várias páginas confiáveis ??que descrevem como fazer isso.

Solução para Internet Explorer 6, 7, 8.

Com uma pequena ajuda do navegador detectar função: http://www.quirksmode.org/js /detect.html , aqui é como fechar janela sem caixa comfirmation para várias versões do IE.

if ((userBrowser.browser == "Explorer" && (userBrowser.version == "8" || userBrowser.version == "7"))) {
        window.open('', '_self', '');
        window.close();
    } else if ((userBrowser.browser == "Explorer" && userBrowser.version == "6")) {
        window.opener = null;
        window.close();
    } else {
        window.opener = '';
        window.close(); // attempt to close window first, show user warning message if fails
        alert("To avoid data corruption/loss. Please close this window immedietly.");
    }

Eu sei que alguns de vocês podem pensar que usando o navegador detectar não é uma boa idéia. Além disso, muitos acreditam que forçar os usuários a fechar janela é uma coisa ruim. Concordo com aqueles ideia. Mas, eu só preciso por causa da exigência de software nos dizem para fazer.

Espero que isso ajude.

Outras dicas

Isso seria uma falha grave na segurança. Você nunca será capaz de fazer isso.

Você pode, no entanto, perto janelas filho o pai abriu. Digamos que você abriu um popup com uma janela pai, a mesma janela pai pode ter um botão para fechar a criança. Nunca o navegador.

Eu acho que parte do problema aqui é que você não são claras sobre o seu objetivo em questão. Do seu comentário sobre a resposta de Frankie, parece que você realmente não precisa fechar a janela em tudo, você simplesmente precisa para proteger o conteúdo que estava disponível na janela.

Aqui está o que eu recomendo:

  1. Kill the logado sessão baseado em um (server-side) timeout. Quando o tempo limite é para cima, um recarregamento da página só deve redirecionar para a página de login.
  2. No lado do cliente, verificar periodicamente se há condições de tempo limite e redirecionar para uma página de login, ou alguma outra página ser-fixado Indiferente-need-to-.

Francamente, é geralmente melhor para manter um usuário em seu site até o momento que -they- quer fechar a guia ou não navegar afastado de qualquer maneira. Apenas redirecioná-los para uma página de destino que não precisa ser seguro, em vez de tentar força de fechamento da guia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top