Я использую следующий код (с библиотекой Underscore.js), чтобы добавить атрибуты target="_blank"
и rel="external"
ко всем нелокальным ссылкам при загрузке страницы.Мой код выглядит следующим образом:
(function($){
$(document).ready(function(){
// Create a matching regex pattern based on current host name
var regexPattern = new RegExp(location.origin);
// Gather all non-local links
nonLocalLinks = _(jQuery('a')).reject(function(link) {
return link.href.match(regexPattern);
});
// Add attributes to all non-local links
_(nonLocalLinks).each(function(item) {
item.target = '_blank';
item.rel = 'external';
});
})
})(jQuery)
Этот код работает правильно во всех протестированных браузерах (Chrome 17, IE7, IE8, IE9, Safari), но не работает в Firefox 10. Ссылки, имеющие target="_blank"
атрибут, установленный для тега привязки как часть HTML-вывода, выполняемого серверной функцией, как и ожидалось.Это не сработает при загрузке страницы в Firefox, или я пропускаю что-то еще?
Кроме того, я ценю любой вводный материал, но, пожалуйста, не думайте, что это плохой пользовательский опыт и т. Д.Я согласен, но у меня нет выбора - это для клиента, и это то, что они хотят;«Нет» не является опцией.
РЕДАКТИРОВАТЬ: Это «не работает» означает, что ссылка открывается в той же вкладке.В консоли firebug ошибок нет - ссылка просто ведет себя так, как будто target="_blank"
не установлен.