Enlaces que no funcionan

Enlaces que no funcionan

Cuando hago clic en un target=_blankenlace [1], IE11 abre una nueva pestaña en blanco, en lugar de la pestaña esperada. Esto funciona bien en Chrome[2] pero falla en IE8 y ahora en IE 11.

Restablecí la configuración de mi navegador (configuración de Internet/pestaña Avanzado) y actualicé a IE 11 en un intento de resolver este problema.

Cambiar la configuración de las pestañas parece afectar esto, pero ninguna opción obtiene el comportamiento esperado.

[1] código de ejemplo:

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

[2] Versión 42.0.2311.135

Respuesta1

Dado que target="_blank"funciona pero no target=_blank, esto parece un error en IE11, que no analiza correctamente un atributo que comienza con un guión bajo.

Las soluciones que se me ocurren para este error son:

  1. Utilice otro y mejor navegador
  2. Repara cada página de Internet, reemplazándola target=_blankcontarget="_blank"

Para la primera opción no necesitas mi ayuda.

La segunda opción no es tan imposible como parece. A continuación describiré un enfoque, pero debes tener en cuenta que no uso IE11 y nunca lo he probado.

Un software que modifica las páginas HTML cargadas esmono graso. Existen algunas adaptaciones (de calidad desconocida) para IE11:

Suponiendo que uno de ellos funcione, aquí hay un script de usuario que podría funcionar:

// ==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";
})();

Esto supone, quizás erróneamente, que Greasemonkey agregará comillas alrededor de los atributos que reemplaza. Si eso no sucede, se puede modificar el script para forzar las comillas.

Como no he probado nada, me disculpo de antemano si este método no funciona.

Respuesta2

Puedes eliminar el atributo target='_blank' usando jQuery

algo como

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

o simplemente js

var as = [].slice.apply(document.getElementsByClassName('oLinkExternal'));
for (var a in as){as[a].target="");}

información relacionada