无效的html(href目标标签)

时间:2009-09-04 14:25:31

标签: html validation href

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

我通过w3 html验证器运行了一个页面,我收到了一条错误消息

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

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

您在文档中使用了上面提到的属性,但您使用的文档类型不支持该元素的该属性。此错误通常是由于“Strict”文档类型与使用框架的文档的错误使用(例如,您必须使用“Transitional”文档类型来获取“target”属性)或使用供应商专有扩展(例如“ marginheight“(这通常通过使用CSS来实现所需效果来修复)。

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

7 个答案:

答案 0 :(得分:4)

您可以使用JavaScript to open new windows,这可以避免现代HTML中目标无效的问题。

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

更好的方法是让用户决定何时需要新窗口。除了烦恼因素外,他们确实引入了accessibility problems

答案 1 :(得分:3)

target="_blank"

不会验证strict,因为'target'属性已被弃用。

相反,尝试类似于前面提到的onclick解决方法,但你也不需要“_blank”。简单地:

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

会工作吗?弃用“目标”的原因是因为HTML用于语义标记数据,而目标属性提供行为,这就是javascript的用途。

如果用户关闭了javascript,则只会在同一窗口中打开该网址。

答案 2 :(得分:1)

不应该......

target="_blank"

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

答案 3 :(得分:1)

target attribute不是HTML 4和XHTML 1.0以及XHTML 1.1的严格变体的一部分。

因此,您需要使用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(见Hyperlink Presentation Module):

a._blank {
    target: new;
}

答案 4 :(得分:1)

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

  

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

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

答案 5 :(得分:0)

使用:

target="_blank"

打破严格的XHTML验证方法。 Here's详细说明解决方法的文档:

答案 6 :(得分: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%)仍然可以使用此方法的链接。这家伙在评论中有一个很好的观点:)

祝大家周末愉快......