虽然 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 验证器中的错误?

有帮助吗?

解决方案

您正在被验证为 XHTML 过渡性的 而不是 严格的. 。如果您手动将文档类型覆盖为 XHTML 1.0 Strict,则会收到此错误:

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

…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,其中只有一个版本(没有严格/过渡),并且根据 这个常见问题解答 target 属性确实是不允许的。所以我猜这一定是验证器中的错误。

其他提示

它已被弃用,但不会被删除。这就是为什么我认为有问题,验证该

XHTML1.1文档表明一个a元件的目标属性可以是“任何”。

它意味着XHTML 1.1支持目标=” _空白”,但XHTML 1.0严格不?

好,是。

如果您需要一种解决方法您的问题,那么这就是其中之一。另一种选择是使用window.open()来代替目标= “_空白”。

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

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

验证输出:1 错误

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

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

验证器于 2012 年 1 月 30 日开始运行。您无法使用 target="_blank" 通过验证

替换为代码的有效部分:

onclick="target='_blank';"

虽然XHTML可以支持“targrt =” _空白”,它不会验证它,因为它长谷已经贬值了。如果你不想使用JS,你将不得不使用过渡性的,而不是严格在‘文件类型’

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top