Sobrescrever o método open da classe window


Imagine a seguinte situação: Você entra numa empresa e o sistema que você vai manter usa aquelas janelas pop-ups do javascript, não estou falando do alert() me refiro aquelas da classe window, uma tristeza, inda mais se estivermos pensando em usabilidade e desempenho, eu digo isso, pois, é comum do usuário abrir inúmeros pop-ups destes e deixar em segundo plano ou minimizado, levando em conta maus hábitos de programação conhecido de alguns programadores em PHP, considere então conexões com o banco de dados não finalizadas até o término do script PHP, a solução é fazer com que o usuário abra estes pop-ups na mesma janela, substituindo o conteúdo de uma TAG DIV ou o atributo SRC de um IFRAME, mas, imagine também dez centenas de formulários abertos com window.open(), ficaria difícil ir a cada um e substituir né? Pois, para solucionar isso, nós podemos sobrescrever o método open() da classe window do javascript facilmente, veja abaixo um exemplo:

<script type="text/javascript">
window.open = function (open) {
    return function (url, name, features) { 
        return alert(url);
    };
}(window.open);


</script>

este código acima substitui a funcionalidade do método open() abrindo um alert() com a URL passada como parâmetro (return alert(url);), você poderia por ali qualquer coisa, por exemplo, escrever a URL com document.write().

Ao chamar o método ele mostrará uma caixa de texto com a URL passada por parâmetro.

<input type="button" value="clique" 
    onclick="javascript:window.open('http://www.google.com');">

Caso queira substituir o conteuúdo de um IFRAME, você deveria somente substituir
return alert(url); por document.getElementById("id_do_iframe").src=url;

Uma boa ideia agora é implentar este código para abrir as janelas em um painel esmaecido com DIV flutuante na frente da página que o chamou, fica muito bom!

Escrito por Roberson Carlos robersonfox at gmail.com 27/09/13

Written with StackEdit.

Anúncios

, , ,

  1. Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

  • Follow Carl Roberson's on WordPress.com
  • Fallow me
  • Linux 20 Anos
  • Ubuntu LTS Trusty Tahr

    Lançamento da versão LTS do Ubuntu20 de abril de 2014
    Ubuntu LTS Trusty Tahr Chegou!!! http://www.ubuntu.com/download/desktop
  • Grafica Livre

  • O que estou lendo agora

  • Na minha estante me aguardando


    Literatura
  • Bookmark and Share
%d blogueiros gostam disto: