permitir - please enable javascript to view the page content crossfire




ie8 var w=window.open()-“Mensagem: argumento inválido”. (10)

As respostas aqui estão corretas em que o IE não suporta espaços ao definir o título em window.open (), nenhum parece oferecer uma solução alternativa.

Eu removi o título da minha chamada window.open (você pode usar null ou ''), e ele adicionou o seguinte à página sendo aberta:

<script>document.title = 'My new title';</script>

Não é ideal por qualquer meio, mas isso permitirá que você defina o título para o que quiser em todos os navegadores.

Eu tenho um site que tem um problema somente do IE8:

O código é:

var w = window.open(urlstring, wname, wfeatures, 'false');

O erro é:

Mensagem: argumento inválido.
Linha: 419 Carga: 5
Código: 0
URI: http://HOSTNAME/js_context.js

Eu confirmei o número da linha do código (a "Linha" e "URI" estão corretos), e eu entendo em versões posteriores do IE8, isso é considerado preciso.

Eu verifiquei todos os parâmetros de entrada na chamada despejando alertas, e todos parecem válidos.

Esse problema não acontece em FF (provavelmente 3).

ATUALIZAR:

O problema parece estar em atribuir o resultado de window.open () ao fazer "var w". Quando divido a linha em duas declarações, ele funciona no IE8.

UPDATE2:

Baseado em:

http://javascript.crockford.com/code.html

Quando uma função deve ser invocada imediatamente, toda a expressão de invocação deve ser envolvida em parens, de modo que fique claro que o valor que está sendo produzido é o resultado da função e não da própria função.

Isso não é exatamente o que está acontecendo aqui, mas descobri que aplicar o princípio resolveu o problema, no modo de compatibilidade do IE8.

var w = (window.open(urlstring, wname, wfeatures, false));

Este é um post antigo, mas talvez ainda seja útil para alguém.

Eu tive a mesma mensagem de erro. No final o problema era um nome inválido para o segundo argumento, ou seja, eu tinha uma linha como:

   window.open('/somefile.html', 'a window title', 'width=300');

O problema era "um título de janela", pois não é válido. Funcionou bem com a seguinte linha:

   window.open('/somefile.html', '', 'width=300');

Na verdade, lendo atentamente, percebi que a Microsoft não suporta um name como segundo argumento. Quando você olha para a página de documentação oficial , você vê que a Microsoft apenas permite os seguintes argumentos, se usar esse argumento em todos os:

  • _em branco
  • _meios de comunicação
  • _parent
  • _procurar
  • _auto
  • _topo

Eu também conheço esse problema enquanto usava o seguinte código:

window.open('test.html','Window title','width=1200,height=800,scrollbars=yes');

mas quando apago o espaço em branco do "Título da janela", o código abaixo está funcionando:

window.open('test.html','Windowtitle','width=1200,height=800,scrollbars=yes');

IE é exigente sobre o argumento do nome da janela. Não gosta de espaços, traços ou outras pontuações.


O que a posição quatro representa, aquela que tem "falso" como um valor? Isso não deveria ser falso (ou seja, sem aspas?). É possível que versões anteriores do IE coagulem a string para um booleano, mas as mais novas não.


Oi usando o seguinte código seu trabalho ...

onclick="window.open('privacy_policy.php','','width=1200,height=800,scrollbars=yes');

Anteriormente eu entrei como

onclick="window.open('privacy_policy.php','Window title','width=1200,height=800,scrollbars=yes');

Significa Microsoft não permite que você digite o nome da janela deve estar em branco na função window.open ...

Obrigado, Nilesh Pangul


Parece que, mesmo usando um nome de janela personalizado "válido" (não _blank, etc.) usando window.open para iniciar uma nova janela, ainda há problemas. Ele funciona bem na primeira vez que você clica no link, mas se você clicar nele novamente (com a primeira janela ativada ainda para cima), você receberá uma depuração de script "Erro: sem essa interface com suporte".


Quando você chama window.open no IE, o segundo argumento (nome da janela) deve ser uma das strings de destino predefinidas ou uma string, que tem uma forma de um identificador válido em JavaScript.

Então, o que funciona no Firefox: "Job Directory 9463460", não funciona no Internet Explorer, e tem que ser substituído por: "Job_Directory_9463460" por exemplo (sem espaços, sem sinais de menos, sem pontos, tem que ser um identificador válido) .


Tente remover o último argumento. Além disso, certifique-se de que urlstring, wname e wfeatures existam.


o problema pode ser o wname, tente usar um daqueles mostrados no link acima, cito:

Opcional. String que especifica o nome da janela. Esse nome é usado como o valor para o atributo TARGET em um formulário ou um elemento de âncora.

  • _blank O sURL é carregado em uma nova janela sem nome.
  • _media O URL é carregado na barra de mídia no Microsoft Internet Explorer 6. Microsoft Windows XP Service Pack 2 (SP2) e posterior. Este recurso não é mais suportado. Por padrão, o URL é carregado em uma nova janela ou guia do navegador.
  • _parent O sURL é carregado no pai do quadro atual. Se o quadro não tiver pai, esse valor atuará como o valor _self.
  • _search Desabilitado no Windows Internet Explorer 7, consulte Segurança e Compatibilidade no Internet Explorer 7 para obter detalhes. Caso contrário, o sURL é aberto no painel de pesquisa do navegador no Internet Explorer 5 ou posterior.
  • _self O documento atual é substituído pelo sURL especificado.
  • _top sURL substitui todos os conjuntos de quadros que podem ser carregados. Se não houver conjuntos de quadros definidos, esse valor atuará como o valor _self.

se estiver usando outro wname, window.open não será executado ...





internet-explorer-8