代码之家  ›  专栏  ›  技术社区  ›  Darryl Hein IrishChieftain

在HTML5中使用target=“_blank”可以吗?

  •  154
  • Darryl Hein IrishChieftain  · 技术社区  · 15 年前

    我记得在某个地方读到HTML5不再可以使用 target="_blank" 在HTML5,但我现在找不到。

    可以继续使用吗 target=“空白” ?

    我知道这通常被认为是一个坏主意,但这是打开一个新窗口的最简单方法,比如PDF,而且它也不要求你依赖javascript。

    9 回复  |  直到 15 年前
        1
  •  150
  •   Andrew T.    11 年前

    看起来像 target="_blank" 还是可以的。它在中作为浏览上下文关键字列出 the latest HTML5 draft .

        2
  •  88
  •   James A Mohler Nika    11 年前

    可以用了 target="_blank" ;这在XHTML中被取消了,因为在大多数浏览器中,针对新窗口总是会弹出警告。XHTML将始终在验证中显示目标属性的错误。

    HTML 5把它带回来了,因为我们仍然在使用它。是我们的朋友,我们不能放手。

    永远不要放手。

        3
  •  16
  •   chharvey    10 年前

    尽管 target="_blank" acceptable in HTML5 我个人尝试从不使用它(甚至在新窗口中打开PDF)。

    HTML应该定义 意义和内容 . 问问自己, 会不会 意思 a 元素更改,如果 target 属性已删除?艾斯 如果没有,代码不应该放在HTML中。(事实上,我很惊讶W3C保留了它,我想他们真的不能放手。)

    浏览器 行为 具体来说, 与用户的交互行为 应使用客户端脚本语言(如javascript)实现。因为您希望浏览器以特定的方式运行,即打开一个新窗口,所以应该使用JS。但是正如您提到的,这种行为要求浏览器依赖于JS。(不过,如果您的网站有优雅的降级或逐步增强, or whatever 那么它应该还可以。禁用JS的用户不会错过太多。)

    据说, 这些都不是正确的答案。 Out there somewhere 你的观点是 链接的打开方式最终应由最终用户决定。 . 以这个例子为例。

    你在维基百科上冲浪,越来越深入到兔子洞里。你在阅读中遇到一个链接。

    让我们假设您想在返回前快速浏览链接页面。您可以在新的选项卡中打开它,然后在完成后关闭它(因为点击__后退_按钮并等待页面重新加载需要很长时间)。或者,如果它看起来很有趣,并且您想保存它以备以后使用呢?也许你应该在新的背景选项卡中打开它,继续阅读当前页面。或者,也许您决定重新阅读本页,所以您只需按照当前选项卡中的链接进行操作。

    关键是,您有自己的工作流程,并且您希望您的浏览器能够相应地工作。如果它为你做了这些决定,你可能会非常沮丧。

    也就是说,Web开发人员应该非常清楚他们的链接去哪里,他们引用的源的类型和/或格式,以及他们做什么。工具提示可以是您的朋友(除非您使用的是平板电脑或电话;在这种情况下,请在移动网站上指定这些工具提示)。我们都知道被带到一个我们没有预料到的地方,或者让一些我们不想发生的事情发生,有多糟糕。

        4
  •  12
  •   Andrew T.    11 年前

    这是打开一个新窗口的最简单方法,比如PDF

    这也是最容易激怒非Windows用户的方法。PDF在其他平台的浏览器中打开很好。打开一个新窗口也会扰乱导航历史,使智能手机等小型平台的问题变得复杂。

    不要仅仅因为旧版本的窗口被破坏而为PDF之类的东西打开新窗口。

        5
  •  4
  •   kojow7    10 年前

    虽然目标在HTML5中仍然可以接受,但它不是首选。要链接到PDF文件,请使用 下载 属性而不是目标属性。

    下面是一个例子:

    <a href="files/invoice.pdf" download>Invoice</a>
    

    如果原始文件名编码为唯一的文件存储,则可以通过为“下载”属性指定值来指定用户友好的下载名:

    <a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>
    

    请记住,虽然大多数现代浏览器支持此功能,但有些可能不支持。见 caniuse.com 更多信息。

        6
  •  4
  •   MahdiY    9 年前

    大多数Web开发人员使用 target="_blank" 只打开新选项卡中的链接。如果你使用 target=“空白” 只有在新选项卡中打开链接,它才容易受到攻击者的攻击。在新选项卡中打开链接时( target=“空白” )在新选项卡中打开的页面可以访问初始选项卡并使用 window.opener 属性。

    javascript代码:

    window.opener.location.replace(malicious URL)
    

    预防:

    rel="nofollow noopener noreferrer"
    
        8
  •  0
  •   Johan Stiven Hernandez Osorio    8 年前

    您可以使用jquery按以下方式执行,这将在新窗口中打开它:

    <input type="button" id="idboton" value="google" name="boton" /> 
    
    <script type="text/javascript">
        $('#idboton').click(function(){
            window.open('https://www.google.com.co');
        });
    
    </script>
    
        9
  •  -1
  •   Stephen Rauch Afsar Ali    8 年前

    我认为target属性对于 <link> 元素,而不是 <a> 可能这就是为什么你听说它不应该再被使用了。