代码之家  ›  专栏  ›  技术社区  ›  Crash893

无效的html(href目标标记)

  •  1
  • Crash893  · 技术社区  · 16 年前

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

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

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

    你知道如何让链接打开一个新窗口,但不使用目标标签吗?

    7 回复  |  直到 16 年前
        1
  •  4
  •   Quentin    16 年前

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

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

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

        2
  •  3
  •   Evernoob    16 年前
    target="_blank"
    

    将不进行严格验证,因为“target”属性已被弃用。

    相反,尝试类似于上述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将在同一窗口中打开。

        3
  •  1
  •   Gumbo    16 年前

    target attribute

    因此,你需要使用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
  •   jjclarkson Andy Rose    16 年前

    target="_blank"
    

        5
  •  1
  •   kaptan    14 年前

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

    a和area元素的目标属性不再是 已弃用,因为它在Web应用程序中很有用,例如结合使用

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

        6
  •  0
  •   Dominic Bou-Samra    16 年前

    使用:

    target="_blank"
    

    Here's

        7
  •  0
  •   Kim Andersen    16 年前

    代替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%左右)仍然可以使用此方法跟踪链接。这家伙的评论很有道理:)

    祝大家周末愉快。..