html中设置链接目标的方法是通过标签的target属性,常用值包括:1._self(默认,在当前窗口打开);2._blank(在新窗口/标签页打开,推荐配合rel=”noopener”使用以避免安全风险);3._parent(在父框架中打开);4._top(在整个窗口中打开,移除所有框架)。实际开发中_blank最常用,但需注意用户体验和安全问题,而_parent和_top主要用于处理框架集场景。
HTML中设置链接目标,简单来说就是告诉浏览器,点击链接后应该在哪里打开新的页面。这通常通过标签的target属性来实现。
解决方案 target属性定义了链接打开的位置。常用的值包括:
- _self: 默认值,在当前窗口/标签页中打开链接。
- _blank: 在新的窗口/标签页中打开链接。
- _parent: 在父框架集中打开链接。如果当前页面没有框架,则与_self相同。
- _top: 在整个窗口中打开链接,移除所有的框架。
举个例子:
<a href="https://www.example.com" target="_blank">在新标签页打开 Example</a> <a href="https://www.example.com" target="_self">在当前标签页打开 Example</a>
实际开发中,_blank是最常用的,但要小心滥用。
立即学习“前端免费学习笔记(深入)”;
如何正确使用target=”_blank”?
target=”_blank”虽然方便,但存在安全风险。新打开的页面可以访问你的window.opener对象,这意味着它可以修改你的原始页面。为了缓解这个问题,可以添加rel=”noopener”或rel=”noreferrer”属性。
- rel=”noopener”:阻止新页面访问window.opener,并确保新页面运行在独立的进程中。这是推荐的做法。
- rel=”noreferrer”:除了阻止访问window.opener外,还会阻止新页面接收Referer头信息。
所以,推荐的写法是:
<a href="https://www.example.com" target="_blank" rel="noopener">安全地在新标签页打开 Example</a>
为什么有些网站不推荐使用target=”_blank”?
用户体验是关键。强制在新标签页打开链接可能会让用户感到困惑,特别是当用户习惯于使用浏览器的后退按钮时。更好的做法是让用户自己选择是否在新标签页打开链接(通过右键菜单或快捷键)。
当然,在某些情况下,target=”_blank”是合适的。比如,当链接指向一个外部网站,并且你希望用户在访问后仍然停留在你的网站上。
_parent和_top有什么实际应用场景?
这两个属性主要用于处理框架集。框架集现在已经很少使用了,但了解它们的工作原理仍然有价值。
- _parent:如果你的页面嵌套在框架中,使用target=”_parent”会在父框架中打开链接。
- _top:无论你的页面嵌套了多少层框架,使用target=”_top”都会在整个浏览器窗口中打开链接,移除所有框架。
例如,如果你的网站被嵌入到别人的网站的框架中,你可以使用target=”_top”来“跳出”框架,让你的网站在整个窗口中显示。