2010-12-09 92 views
15

我只是在w3Schools看着目标,发现它不再受任何主流浏览器的支持。一个简短的谷歌搜索没有揭示这个原因?我应该避免一起使用目标吗?不支持HTML目标属性

+0

好问题。我一直使用目标。我们的选择是什么? – Dutchie432 2010-12-09 15:05:05

回答

1

它仍然允许在普通的HTML和过渡XHTML,而不是严格的xHTML了。这背后的想法是,用户喜欢自己选择如何打开一个链接,而不是由浏览器强迫他们。

0

我去了w3School,发现HTML5中不再弃用target属性。

8

target属性支持所有浏览器。

它已从HTML4严格和XHTML 1严格删除,因为这些不允许框架,并且因为在用户上强制新窗口并不总是好主意(例如,新窗口中的后退按钮将被禁用,这会造成混淆一些用户)。

target已经在HTML5被加回。你可以使用,但不要滥用它。

如果您想在具有长表单的页面上的新窗口中打开帮助页面(您不希望用户丢失表单的内容),但可以将每个链接强制在新窗口中希望它会让你的页面更难离开。

请不要尝试通过使用脚本来打开验证器来打开新窗口。它给用户带来了同样的负面影响(如果JS禁用时发生中断,甚至更糟),但比target更难以检测和控制。

顺便说一句:请不要将W3School视为权威性的。他们不以任何方式隶属于W3C,他们的教程经常包含错误。

0

大多数主流浏览器的支持。这只是W3C严格的HTML规范的一部分。但是,即使使用严格的文档类型,浏览器也可以实现它。这一事实有时被用来模拟使用JavaScript自己的行为,同时保持HTML仍然验证:

<a href="http://www.google.com" rel="external">This is an external link</a> 

和:

var links = document.getElementsByTagName('a'); 
for(var i=0, len=links.length; i<len; i++){ 
    var a = links[i]; 
    if(a.getAttribute('href') && a.getAttribute('rel')=='external'){ 
     a.target='_blank'; 
    } 
} 

在过渡的doctype,不需要解决方法。

0
$(function() { 
    $("a").attr("target","_blank"); 
});