5

虽然 target="_blank" 已被弃用,但为什么 W3C 验证器没有给出关于此的错误?您可以在验证器中粘贴并检查此代码:

<!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 strict 不支持?还是 W3C 验证器中的错误?

4

6 回答 6

4

您正在被验证为 XHTML Transitional而不是Strict。如果您手动将 doctype 覆盖为 XHTML 1.0 Strict,则会收到以下错误:

错误第 11 行,第 76 列:属性“目标”存在,但不能用于此元素。

…om" title="新窗口将打开" target="_blank">链接在新窗口中打开

如果您想严格,请使用此文档类型:

<!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),根据这个常见问题解答,目标属性确实是不允许的。所以我想这一定是验证器中的一个错误。

于 2009-12-16T11:46:27.523 回答
2

它已弃用但未删除。这就是为什么我认为验证这一点存在问题。

于 2009-12-16T11:48:30.687 回答
2

XHTML1.1文档显示a元素的目标属性可以是“任何东西”。

于 2009-12-16T11:54:31.097 回答
2

这是否意味着 XHTML 1.1 支持 target=”_blank” 但 XHTML 1.0 严格不支持?

嗯,是。

如果您需要解决问题的方法,那么这就是其中之一。另一种选择是使用 window.open() 而不是 target="_blank"。

于 2009-12-16T12:10:19.590 回答
1

我使用了您的代码,但出现以下错误。

将此文档检查为 XHTML 1.1 时发现错误!

验证输出:1 错误

  1. 错误第 11 行,第 76 列:没有属性“目标”

    ….com" title="新窗口将打开" target="_blank">链接在新窗口中打开

验证器从 2012 年 1 月 30 日开始工作。您无法使用 target="_blank" 通过验证

替换为这段有效的代码部分:

onclick="目标='_blank';"

于 2012-01-30T06:46:57.157 回答
0

虽然 xhtml 可能支持 "targrt="_blank",但它不会验证它,因为它已被贬值。如果您不想使用 JS,则必须在“文档类型”中使用过渡而不是严格。

于 2010-04-19T21:52:24.180 回答