Соответствует стандартам эквивалентно target = "_ blank" - PullRequest
5 голосов
/ 11 мая 2011

Есть случаи, когда мне приходится открывать ссылки в новом окне / вкладке. Есть ли способ сделать это, который действителен для строгого HTML? Использование jQuery для этого было бы приемлемо, но я бы предпочел не просто возвращать target="_blank" обратно в w / jQuery, чтобы валидаторы их не видели.

Ответы [ 2 ]

6 голосов
/ 11 мая 2011

Поскольку вы сказали, что jQuery разрешен.

<a href="http://mysite.com" class="newWindow">Open in new window</a>

$('a.newWindow').click(function(e){
   e.preventDefault();
   window.open(this.href);
});

Вы также можете сделать это через обычный JS.Таким образом, ваш HTML не будет перетекать onclick повсюду.

РЕДАКТИРОВАТЬ - Обновлено для использования e.preventDefault() в соответствии с предложением Яна.

2 голосов
/ 11 мая 2011

Это работает: <a href="test.html" onclick="window.open(this.href); return false; ">click me</a>

Однако атрибут onclick для присоединения обработчиков событий обычно не поддерживается.Подходящий способ прикрепления обработчика событий зависит от вашей структуры JavaScript.selector.click(function) подходит в jQuery.

...