Ссылки не работают

Ссылки не работают

Когда я нажимаю target=_blankссылку [1], IE11 открывает новую пустую вкладку вместо ожидаемой. Это отлично работает в Chrome[2], но не работает в IE8, а теперь и в IE 11.

Я сбросил настройки браузера (настройки Интернета/вкладка «Дополнительно») и обновил его до IE 11, пытаясь решить эту проблему.

Изменение настроек вкладки, похоже, влияет на это, но ни одна из опций не обеспечивает ожидаемого поведения.

[1] пример кода:

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

[2] Версия 42.0.2311.135

решение1

Так как target="_blank"работает, но не работает target=_blank, то это похоже на ошибку в IE11, которая неправильно анализирует атрибут, начинающийся с подчеркивания.

Обходные пути для этой ошибки, которые я могу придумать, следующие:

  1. Используйте другой, лучший браузер
  2. Исправьте каждую страницу в Интернете, заменив ее target=_blankнаtarget="_blank"

Для первого варианта вам не нужна моя помощь.

Второй вариант не так невозможен, как кажется. Ниже я опишу подход, но вы должны принять во внимание, что я не использую IE11 и никогда не пробовал этого.

Программное обеспечение, которое изменяет загруженные HTML-страницы,Грязная обезьяна. Некоторые его адаптации (неизвестного качества) существуют для IE11:

Если предположить, что один из них работает, то вот пользовательский скрипт, который может выполнить эту работу:

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

Это предполагает, возможно ошибочно, что Greasemonkey добавит кавычки вокруг атрибутов, которые он заменяет. Если этого не произойдет, скрипт можно изменить, чтобы принудительно добавить кавычки.

Поскольку я ничего не тестировал, заранее приношу извинения, если этот подход не сработает.

решение2

Вы можете удалить атрибут target='_blank' с помощью jQuery

что-то вроде

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

или просто js

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

Связанный контент