2

Когда я щелкаю ссылку 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

2 ответа2

3

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

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

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

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

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

Программное обеспечение, которое изменяет загруженные страницы HTML, является Greasemonkey. Некоторые его модификации (неизвестного качества) существуют для 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 будет добавлять кавычки вокруг атрибутов, которые он заменяет. Если этого не произойдет, сценарий может быть изменен, чтобы вызвать кавычки.

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

0

Вы можете удалить атрибут 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="");}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .