虽然不推荐使用target =“_ blank”,但为什么W3C验证器没有给出错误?您可以在validator:
中粘贴并检查此代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>
<a href="http://www.stackoverflow.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>
修改
这是否意味着XHTML 1.1支持target =“_ blank”,但XHTML 1.0严格不支持?或者它是W3C验证器中的错误?
答案 0 :(得分:4)
您被验证为XHTML 过渡而不是严格。如果手动将doctype重写为XHTML 1.0 Strict,则会出现此错误:
错误第11行,第76列:存在属性“target”,但不能用于此元素。
... om“title =”新窗口将打开“target =”_ blank“&gt;链接在新窗口中打开
如果您想严格要求,请使用此doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
过渡模式仍然允许某些已弃用的元素和属性,我想帮助人们过渡逐步实现更严格的标记。
修改强>
好的,所以原始代码是XHTML 1.1,其中只有一个版本(没有Strict / Transitional),而根据this FAQ,确实不允许使用target属性。所以我想这肯定是验证器中的一个错误。
答案 1 :(得分:2)
已弃用但未删除。这就是为什么我认为验证它存在问题。
答案 2 :(得分:2)
XHTML1.1 documentation表示a
元素的目标属性可以是“任何”。
答案 3 :(得分:2)
这是否意味着XHTML 1.1支持target =“_ blank”但XHTML 1.0严格不支持?
嗯,是的。
如果您需要解决问题的方法,那么这就是其中之一。另一种选择是使用window.open()而不是target =“_ blank”。
答案 4 :(得分:1)
我使用了您的代码,我收到了以下错误。
将此文档检查为XHTML 1.1时发现错误!
验证输出:1错误
错误第11行,第76列:没有属性“target”
... .com“title =”新窗口将打开“target =”_ blank“&gt;链接在新窗口中打开
验证工具截止到2012年1月30日。您无法使用target =“_ blank”
传递验证替换为此有效代码部分:
的onclick = “目标= '_空白';”
答案 5 :(得分:0)
虽然xhtml可能支持“targrt =”_ blank“,但它不会验证它,因为它已被折旧。如果你不想使用JS,你将不得不在”文档类型“中使用transitional而不是strict