Сделать привязку HTML к новому окну в строгом типе док-станции - PullRequest
1 голос
/ 24 ноября 2010

Мы используем атрибут «target» тега, чтобы указать целевое местоположение ссылки.

Но атрибут «target» не может использоваться в строгом типе документа (я ссылался на http://w3schools.com/tags/tag_a.asp).Каково решение, если мы используем строгий тип документа?

Ответы [ 3 ]

5 голосов
/ 24 ноября 2010

Короче говоря, JavaScript.

Строгий тип документа в общих чертах считается «строго документным содержимым», а не поведением, которое определяет целевой атрибут.Предполагается, что пользователь примет решение и будет иметь полный контроль над тем, как ссылки открываются в их браузере.

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

<a href="test.php" rel="external">my link</a>

Так что ваш скрипт может выглядеть так:

function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
        anchor.getAttribute("rel") == "external")
        anchor.target = "_blank";
    }
}
window.onload = externalLinks;

Thisв jQuery еще проще:

$(function(){
  $('a[rel=external]').attr('target', '_blank');
});
1 голос
/ 24 ноября 2010

Либо используйте переходный тип документа, который разрешает target, либо, если вы хотите открыть новое окно, используйте JavaScript.

1 голос
/ 24 ноября 2010

window.open () - это программный способ открыть новую вкладку, если вы не можете полагаться на поведение привязки по умолчанию. Однако, это будет перехвачено многими блокировщиками всплывающих окон. Рассмотрим наложение в документе. http://www.javascript -coder.com / оконных всплывающий / неблокируемый-popup.phtml

...