Links não estão funcionando

2

Quando clico em um link target=_blank [1], o IE11 abre uma nova guia em branco, em vez da guia esperada. Isso funciona bem no Chrome [2], mas falha no IE8 e agora no IE 11.

Eu redefino as configurações do meu navegador (configurações de Internet / guia Avançado) e atualizei para o IE 11 na tentativa de resolver isso.

A alteração das configurações da guia parece afetar isso, mas nenhuma opção obtém o comportamento esperado.

[1] código de exemplo:

<A class=oLinkExternal href="http://orgintranet.org.co.uk/systems/ibd-db/" target=_blank>IBD database</A>

[2] Versão 42.0.2311.135

    
por spdegabrielle 06.05.2015 / 12:18

2 respostas

3

Como target="_blank" funciona, mas não target=_blank , isso parece um erro no IE11, não está analisando corretamente um atributo que começa com um sublinhado.

As soluções para esse bug que eu posso imaginar são:

  1. Use outro e melhor navegador
  2. Corrija todas as páginas na Internet, substituindo target=_blank por target="_blank"

Para a primeira opção, você não precisa da minha ajuda.

A segunda opção não é tão impossível quanto parece. Vou descrever abaixo uma abordagem, mas você deve levar em conta que Eu não uso o IE11 e nunca tentei isso.

Um software que modifica as páginas HTML carregadas é Greasemonkey . Algumas adaptações dele (de qualidade desconhecida) existem para o IE11:

Supondo que um deles funcione, aqui está um userscript que pode fazer o trabalho:

// ==UserScript==
// @name        your-choice
// @namespace       http://avoid.collusions.com
// @description     Resets target="_blank" links hoping to add quotes.
// @include     *
// ==/UserScript==
(function () {
    var external = document.links; 
    for (var k=0; k<external.length; k++)   
        if (external[k].href && external[k].target=="_blank") 
            external[k].target = "_blank";
})();

Isso pressupõe, talvez erroneamente, que o Greasemonkey adicione aspas em torno dos atributos que ele substitui. Se isso não acontecer, o script pode ser modificado para forçar as aspas.

Como não testei nada, peço desculpas antecipadamente se essa abordagem não funcionar.

    
por 09.05.2015 / 21:20
0

Você pode remover o atributo target = '_ blank' usando jQuery

algo como

$document.ready(function(){
 $("a").attr('target','_blank');
});

ou apenas js

var as = [].slice.apply(document.getElementsByClassName('oLinkExternal'));
for (var a in as){as[a].target="");}
    
por 15.05.2015 / 17:22