Ir para conteúdo

POWERED BY:

Arquivado

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

panox

[Resolvido] window.open();

Recommended Posts

Olá a todos, estou tendo um problema com o window.open, no firefox e no chrome funciona perfeitamente, mas quando os usuários testam o mesmo no IE, o código não funciona e diz que tem um Argumento invalido.

 

estou utilizando este código

 

function abreAlbum(){
	//Pega Pasta
	var pasta = document.form1.slcAlbum.value;

	//Abre Janela direcionando para as fotos da pasta
	window.open('galeria.asp?albPasta='+pasta,
	'Album de Fotos',
	'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=0,width=800,height=600');  
}

agradeceria se alguém que já passou por esse problema, ou que conheça a causa do erro pudesse dar uma ajuda.

 

 

Obrigado desde já,

 

Enrico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O window.open() ter problemas com vários browser, ainda mais quando se usa vários atributos para a nova janela, de qualquer forma tente assim:

 

function abreAlbum(){
    //Pega Pasta
    var pasta = document.form1.slcAlbum.value;
    var url = 'galeria.asp?albPasta=' + pasta;

    //Abre Janela direcionando para as fotos da pasta
    window.open(url, 'Album de Fotos', 'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=0,width=800,height=600');
}
Se não der, verifique se o IE está bloqueando PopUps.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma coisa, o IE não bloqueia popups, ao clicar chamar a função, o ícone de "erro" de Javascript aparece no canto inferior esquerdo da janela, e ao clicar aponta para a linha que tem o

var url = 'galeria.asp?albPasta=' + pasta;

e diz "Argumento invalido".

 

E isso vem acontecendo de todos os jeitos que eu tento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, então tente pegar o elemento por DOM.

 

HTML

<input type="[..]" id="slcAlbum" />
JavaScript

    var pasta = document.getElementById('slcAlbum').value;
    var url = 'galeria.asp?albPasta=' + pasta;
Se não der, pode postar um screenshot do erro e em qual versão do IE não funciona?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhh... Você está trabalhando com select... Vai ter que usar onchange.

 

Tente colocando isso em um <script> dentro do head.

 

window.onload = function(){
    var select = document.getElementById('slcAlbum');
    select.onchange = function(){
        var url = 'galeria.asp?albPasta=' + this.value;
        window.open(url,  'Album de Fotos', 'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=0,width=800,height=600')
    };
};
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro ocorre porque no IE o segundo argumento não é o titulo da janela como nos outros, mas uma referencia sobre o local onde deve ser aberto o documento.

Eu uso essa função, basta adapta-la para os demais atributos.

 

function openWindow(URL, Width, Height) {
  Attributes = 'dialogWidth:' + Width + 'px;dialogHeight:' + Height + 'px;';
  if (window.showModalDialog) { // IE (apenas IE tem esse método)
    return(window.open(URL, '_blank', Attributes));
  }
  else { // Browsers normais =)
    return(window.open(pUrl, "", Attributes));
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiago, eu ja estava pegando pelo onchance.

 

 

Francis, era exatamente isso, muito obrigado !

 

 

Obrigado pela a ajuda de ambos

Compartilhar este post


Link para o post
Compartilhar em outros sites

por isso que eu "amo" o IE ;D

 

E mesmo com todos os problemas que a Micro$oft me trouxe, eu sucumbi ao Programa S2B desse ano.

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.