Javascript 可以使用target="_“空白”;在HTML5中?
我记得在某个地方读到,在HTML5中,在HTML5中使用Javascript 可以使用target="_“空白”;在HTML5中?,javascript,html,window,Javascript,Html,Window,我记得在某个地方读到,在HTML5中,在HTML5中使用target=“\u blank”已经不合适了,但我现在找不到了 是否可以继续使用target=“\u blank” 我知道这通常被认为是个坏主意,但这是为PDF之类的东西打开新窗口的最简单方法,而且它也不需要依赖JavaScript。的确如此 看起来target=“\u blank”仍然正常。它在中作为浏览上下文关键字列出。可以使用target=“\u blank”;这在XHTML中被取消了,因为在大多数浏览器中,瞄准新窗口总是会弹出警报
target=“\u blank”
已经不合适了,但我现在找不到了
是否可以继续使用target=“\u blank”
我知道这通常被认为是个坏主意,但这是为PDF之类的东西打开新窗口的最简单方法,而且它也不需要依赖JavaScript。的确如此
看起来
target=“\u blank”
仍然正常。它在中作为浏览上下文关键字列出。可以使用target=“\u blank”
;这在XHTML中被取消了,因为在大多数浏览器中,瞄准新窗口总是会弹出警报。XHTML将始终在验证中显示带有target属性的错误
HTML5把它带回来了,因为我们还在使用它。这是我们的朋友,我们不能放手
永远不要放手
这是打开一个新窗口(比如PDF)的最简单方法
这也是骚扰非Windows用户的最简单方法。PDF可以在其他平台的浏览器中正常打开。打开一个新窗口也会扰乱导航历史,并使智能手机等小型平台上的问题变得复杂
不要仅仅因为旧版本的windows被破坏就打开PDF之类的新窗口。虽然target=“\u blank”
是,但我个人尝试从不使用它(即使是在新窗口中打开PDF)
HTML应该定义含义和内容。问问自己,“如果删除了target
属性,a
元素的含义是否会改变?”如果不是,则代码不应进入HTML。(事实上,我很惊讶W3C保留了它……我想他们真的不能放手。)
浏览器行为,特别是与用户的交互行为,应该使用客户端脚本语言(如JavaScript)实现。由于您希望浏览器以特定的方式运行,即打开一个新窗口,因此应该使用JS。但正如您所提到的,这种行为要求浏览器依赖JS。(虽然如果你的网站优雅地退化,或者逐渐增强,那么它应该还是可以的。禁用JS的用户不会错过太多。)
尽管如此,这两个都不是正确的答案。链接的打开方式最终应由最终用户决定。以此为例
你在维基百科上冲浪,越来越深入到一个兔子洞里。你在阅读中遇到了一个链接
假设你想在回来之前快速浏览链接页面。您可能会在新选项卡中打开它,然后在完成后关闭它(因为点击“后退”按钮并等待页面重新加载会花费太长时间)。或者,如果它看起来很有趣,你想把它留着以后用呢?也许你应该在一个新的背景标签中打开它,继续阅读当前页面。或者,也许你已经看完了这个页面,所以你只需按照当前选项卡中的链接进行操作
关键是,您有自己的工作流程,并且希望您的浏览器能够相应地运行。如果它为你做出这样的决定,你可能会非常沮丧
也就是说,web开发人员应该明确他们的链接去哪里,他们引用的源的类型和/或格式,以及他们做什么。工具提示可以是您的朋友(除非您使用的是平板电脑或手机;在这种情况下,请在移动网站上指定这些提示)。我们都知道,被带到一个我们没有预料到的地方,或者让我们没有本意的事情发生,是多么糟糕。虽然目标在HTML5中仍然可以接受,但它不是首选。要链接到PDF文件,请使用“下载”属性而不是“目标”属性 以下是一个例子:
<a href="files/invoice.pdf" download>Invoice</a>
如果原始文件名编码为唯一文件存储,则可以通过为“下载”属性指定一个值来指定用户友好的下载名:
<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>
请记住,虽然大多数现代浏览器都支持此功能,但有些浏览器可能不支持。有关更多信息,请参阅。大多数web开发人员仅使用
target=“\u blank”
在新选项卡中打开链接。如果您仅使用target=“\u blank”
打开新选项卡中的链接,则该选项卡易受攻击者攻击。当您在新选项卡中打开链接时(target=“\u blank”
),在新选项卡中打开的页面可以访问初始选项卡,并使用窗口。opener
属性更改其位置
Javascript代码:
window.opener.location.replace(malicious URL)
预防:
rel="nofollow noopener noreferrer"
我认为元素的target属性已被弃用,而不是
,这可能就是您听说它不应该再被使用的原因 使用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>
$('#idboton')。单击(函数(){
打开窗户https://www.google.com.co');
});
@Gumbo回来了。请参阅mike的链接以了解规范的当前版本。通常,如果您想从站点打开外部站点,那么在我看来,打开一个新窗口(这可能是目前大多数浏览器的新选项卡)是一个更好的主意。@hobbes3,请停止弄乱我的导航和历史记录。是我在浏览,是我在决定一个链接是在新的(中键单击)还是在相同的(左键单击)选项卡中打开。当我遇到一个网站强迫我按照它的“合理的最佳实践”在新标签页中打开每个链接时,我会立即高兴地离开。@Albireo,这只是我的观点,一些流行的web服务也采纳了同样的想法。例如,在Gmail中单击邮件中的链接,默认情况下会打开一个新窗口。@Albereo您假设用户总是像您一样先进和精通技术。target
等存在是有原因的。有时它们是必需品。例如,使用有状态JS动态生成的页面