
Когда я нажимаю 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, которая неправильно анализирует атрибут, начинающийся с подчеркивания.
Обходные пути для этой ошибки, которые я могу придумать, следующие:
- Используйте другой, лучший браузер
- Исправьте каждую страницу в Интернете, заменив ее
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="");}