
Cuando hago clic en un target=_blank
enlace [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:
- Utilice otro y mejor navegador
- Repara cada página de Internet, reemplazándola
target=_blank
contarget="_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="");}