1

我很好奇这应该如何正确完成。

我通过 w3 html 验证器运行了一个正在处理的页面,并收到一条错误消息

第 47 行,第 54 列:属性“target”存在,但不能用于此元素。**

<ul><li><a href="./jobops/1000 Design PM.pdf" target="blank">1000 Design PM</a></li>

您已在文档中使用了上述属性,但您使用的文档类型不支持该元素的该属性。此错误通常是由于对使用框架的文档错误使用“严格”文档类型(例如,您必须使用“过渡”文档类型来获取“目标”属性),或使用供应商专有扩展,例如“ marginheight”(这通常通过使用 CSS 来解决,以实现所需的效果)。

关于如何让链接打开一个新窗口但不使用目标标签的任何想法?

4

7 回答 7

4

您可以使用JavaScript 打开新窗口,从而避免现代 HTML 中目标无效的问题。

但是,这绕过了人们用来警告他们新窗口(或阻止它们打开)的各种系统,因此您最好使用目标属性(并切换到允许它的 Doctype)。

更好的是让用户决定何时需要新窗口。除了烦恼因素之外,它们确实引入了可访问性问题

于 2009-09-04T14:37:46.400 回答
3
target="_blank"

不会验证严格,因为“目标”属性已被弃用。

相反,请尝试类似于上述 onclick 解决方法的方法,但您也不需要其中的“_blank”。简单地:

<a href="./jobops/1000 Design PM.pdf" onclick="window.open(this.href); return false;">1000 Design PM</a>

将工作。弃用“target”的原因是因为 HTML 用于在语义上标记数据,而 target 属性提供行为,这就是 javascript 的用途。

如果用户关闭了 javascript,那么 URL 将简单地在同一窗口中打开。

于 2009-09-04T15:05:27.057 回答
1

难道不应该...

target="_blank"

无论如何...您可以使用javascript打开一个新窗口,但这破坏了简单浏览的美感。如果我使用 Lynx 或其他东西浏览怎么办?

于 2009-09-04T14:29:11.423 回答
1

target属性不是 HTML 4 和 XHTML 1.0 以及 XHTML 1.1 的 Strict 变体的一部分。

因此,您需要使用使用 JavaScript 的解决方法:

<a href="./jobops/1000 Design PM.pdf" class="_blank">1000 Design PM</a>

var aElems = document.getElementsByTagName("a");
for (var i=0, n=aElems.length; i<n; ++i) {
    if (/(?:^|\s+)_blank(?:\s+|$)/.test(aElems[i].className)) {
        aElems[i].onclick = function() {
            return !window.open(this.href, "_blank");
        }
    }
}

或者(将来)CSS 3(参见超链接演示模块):

a._blank {
    target: new;
}
于 2009-09-04T14:47:46.430 回答
1

根据 W3C,似乎 HTML 5 中不再弃用“target”属性:

a 和 area 元素的 target 属性不再被弃用,因为它在 Web 应用程序中很有用,例如与 iframe 结合使用。

http://www.w3.org/TR/html5-diff/

于 2011-11-11T00:51:39.090 回答
0

使用:

target="_blank"

打破了严格的 XHTML 验证方法。这是详细说明解决方法的文档:

于 2009-09-04T14:39:28.380 回答
0

而不是 target="_blank" (谁永远不会验证),你可以使用这样的 javascript:

<a onclick='window.open("./jobops/1000 Design PM.pdf", "_blank");return false;' href="./jobops/1000 Design PM.pdf">1000 Design PM</a>

然后链接将在新窗口中打开,您的页面将验证。

未启用 Javascript 的用户(即使仅占所有用户的 2% 左右)仍然可以使用此方法访问链接。这家伙在评论中有一个很好的观点:)

祝大家周末愉快...

于 2009-09-04T14:43:35.173 回答