Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matheus Marcos

Fechar janela alert do IE via código

Recommended Posts

Pessoal, tudo bem?

 

Preciso fazer via código JavaScript com que uma mensagem de alerta do Internet Explorer seja fechada. Me refiro aquelas famosas MsgBox com o botão OK para que o usuário faça o clique.

 

Só que desejo que o código faça isso, sem intervenção de usuário.

 

Meu código navega para uma determinada página, e não consegue prosseguir pois fica pendente esse OK no alert que o IE exibe.

 

Aguardo respostas. Obrigado!

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é possível fechar um alert() via código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Uma vez estive essa mesma dúvida, e a perguntei para um amigo meu que sabe de Javascript, e ele respondeu que não (Com Alert). Só se você criar uma caixa como se fosse o alert().

 

Espero ter Ajudado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra fechar alertas na página faça:

<html>
<head>
<script>
window.backupAlert = window.alert;
window.alert = function () {return true};
</script>
</head>
<body>

<div>
    <div>
        <script>alert("ok");</script>
        <p>Teste...</p>
    </div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro CL4nG,

 

Muito obrigado. Realmente funciona numa página web, porém como adaptar isso para o meu caso?

 

Estou usando um arquivo de script do Windows (.wsf) com instruções javascript, que acessa uma página que possui um Alert().

 

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro CL4nG,

 

Muito obrigado. Realmente funciona numa página web, porém como adaptar isso para o meu caso?

 

Estou usando um arquivo de script do Windows (.wsf) com instruções javascript, que acessa uma página que possui um Alert().

 

 

Abraços.

 

Então, mas como está sendo feito esse acesso a página? Não da pra você injetar esse javascript na página não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho meu arquivo .WSF mais ou menos assim, conforme abaixo.

 

Tentei colocar a instrução informada (em azul) antes de chamar a abertura da página no IE porém não obtive resultado. Assim que a página é aberta o Alert() da página aparece pedindo o OK.

 

Talvez esteja faltando algum parâmetro.

 

<job id="IncludeExample">
<script language="JScript">
var objIE = new ActiveXObject("InternetExplorer.Application");

try
{

window.backupAlert = window.alert;
window.alert = function () {return true};

objIE.Navigate("http://www.PAGINA_TAL.com.br");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente navegar para o site mas só pra obter o documento, dai no objeto objIE adicione primeiro ao body o javascript que te passei, depois adicione o innerHTML do site que você tá querendo fechar o alert.


Algo mais ou menos assim:

var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("about:blank");
var html = '<script>window.alert = function(){return true};</script>';
ie.Document.body.innerHTML = html + htmldosite;
ie.FullScreen = true;
ie.StatusBar = false;
ie.Visible = true;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Quando você diz "htmldosite" se refere a parte do site em que o Alert() é gerado, certo?

Enfim, não consegui fazer funcionar desta forma.

 

Tentei também (sem sucesso) algo do tipo:

objIE.Document.window.backupAlert = window.alert;
objIE.Document.window.alert = function(){return true}
objIE.Navigate("http:www.teste.com.br");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu o que eu disse...

Passos:

  1. Obter o html de todo o site que você quer exibir.
  2. Antes de mostrar o html você vai injetar nele o script que te passei.
  3. Após isso você vai exibir o html.

Eu te passei o script base, agora você só precisa ter o html do site na variável htmldosite.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

 

Eu entendi sim, mas olha só o que está ocorrendo:

 

Quando eu declaro a VAR abaixo dá erro de "Windows Script Host: Esperando um nome válido".

var html = '<script>window.alert = function(){return true};</script>';

 

Sou novato e posso estar comendo bola em algum parâmetro.

Já tentei trocar aspas simples para aspas duplas, mas não resolve... também não sei dizer se é por conta de estar utilizando Try Catch.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque o nome da variável, eu não sei, mas o nome 'html' pode ser reservado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que está ocorrendo é que o meu arquivo de script do Windows (.wsf) não está reconhecendo a string abaixo, e já tentei mudar o nome da var html para var abacaxi mas não resolve.

var html = '<script>window.alert = function(){return true};</script>';

 

Percebi que é por conta do conteúdo da variável... se eu remover o conteúdo, passa tranquilo. Não sei como armazenar esta String de java na variável.

 

 

Seria possível que meu código JS simulasse o pressionamento da tecla [ESC]? KeyCode=27.

 

Se sim, isto resolveria o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não! Senão seria possível fazer upload de arquivos sem que o usuário soubesse...

 

Mas vendo códigos na net (Eu não mexo com coisas da M$...) vi que da pra fazer da forma que te mostrei anteriormente.

 

Mais um código semelhante que vi:

 

<script language=jscript>
	IE = new ActiveXObject("InternetExplorer.Application");
	IE.Visible = true;
	Factory = new ActiveXObject("ScriptX.Factory");
	Sink = Factory.NewEventSink(IE);
	Sink("DocumentComplete") = DocumentComplete;
	Sink("OnQuit") = onQuit;
	IE.Navigate2("http://site.com");
	Sink.Wait();
 	Factory.Shutdown();

 	function onQuit()
 	{
 		this.Unadvise();
 	}

	function DocumentComplete(win, b)
	{
		fechar = '<script>window.alert = function(){return true};</script>';
		win.document.body.innerHTML = fechar + win.document.body.innerHTML;
	}

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.