Javascript Window.open Issue IE7 / IE8
-
11-09-2019 - |
Pergunta
Eu criei um script JQuery simples que percorre uma série de urls e abre várias janelas.
Isso é bom trabalhar na maioria das plataformas.
No entanto, no IE7 e IE8 na máquina do cliente do navegador só é abrir uma única janela. Não há erros de javascript estão presentes.
Eu tenho as mesmas versões no meu laptop e ele funciona muito bem.
Por favor, alguém poderia lançar alguma luz sobre fatores potenciais?
máquinas afetadas: XP SP3 - IE 7 final, Windows 7 IE 8
Qualquer ajuda seria muito apreciada.
Felicidades Paul
Solução
Desculpe, eu não pode seguir o seu código formatado de uma linha. Mas o seguinte funciona em todos os navegadores que tenho disponíveis, incluindo Firefox 3.5, Opera 10, Chrome 3 e Internet Explorer 6, 7 e 8:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="es">
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript"><!--
function openLinks(){
var linkList = [
"http://www.google.es",
"http://www.yahoo.com",
"http://www.bing.com",
"http://stackoverflow.com",
"http://serverfault.com/"
];
$(linkList).each(function(){
window.open(this);
});
}
//--></script>
</head>
<body>
<input type="button" onclick="openLinks()" value="Open lots of links">
</body>
</html>
Erros típicos relacionados com janelas pop-up incluem:
- A atribuição de IDs para janelas e reutilizar a mesma ID -> IDs diferentes atribuir (ou nenhum se não for necessário)
- Abrir pop-ups não solicitados -> Deixe o gatilho usuário a ação
Outras dicas
Pode haver um bloqueador de pop-up habilitado
Se bem me lembro, o bloqueador de pop-up do IE7 + permite apenas uma nova janela por interação do usuário em javascript, e, em seguida, bloqueia-los.
Não tenho certeza, mas você está atribuindo a cada nova referência de uma janela a uma variável? Isso cria problemas, mas se você colocar uma variável, ele ganha nova referência de cada vez e as coisas dentro de jquery laços bom trabalho.