【发布时间】:2023-02-17 00:14:21
【问题描述】:
我想知道是否可以直接从另一个网站的网址而不是打开一个新窗口。
<a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_blank"><button>Download FILE</button></a>
【问题讨论】:
我想知道是否可以直接从另一个网站的网址而不是打开一个新窗口。
<a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_blank"><button>Download FILE</button></a>
【问题讨论】:
<!DOCTYPE html>
<html>
<body>
<h3>https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_a_download</h3>
<p>Click on the image to download PDF32000_2008.pdf<p>
<a href="https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf" download><img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" alt="PDF32000_2008 standard" width="104" height="142">
</a>
<p><b>Note:</b> The download attribute is not supported in IE or Edge (prior version 18), or in Safari (prior version 10.1).</p>
</body>
</html>
这比您的方法更可取,因为它让用户决定下载和重命名文档的时间!此外,您只需要提供封面图标或图像。然而,尽管这对作为客户端用户“offweb”的我来说没有任何问题,但如果它被跨站点污染,它可能无法像服务器上的任何其他链接一样工作。 href 地址只能用于在您自己的网站上或通过您自己的网站提供的资源。
即使您使用 iFrame 或任何其他超级下载方法,也应该是这种情况,而不解决跨源问题。
因此,像您当前的方法这样的东西经常被吹捧为绕过任何跨站点限制的“解决方法”,因为对新选项卡的调用是从客户端浏览器到远程源的直接链接,因此不会再次通过“中间人”,但是,您应该通过添加来提高安全性:-
<a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_blank" rel="noopener noreferrer"><button>Download FILE</button></a>
<!DOCTYPE html>
<html>
<body>
<h3>https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_a_download</h3>
<p>Click on the image to download PDF32000_2008.pdf<p>
<a href="https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf" rel="noopener noreferrer"><img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" alt="PDF32000_2008 standard" width="104" height="142" target="_blank">
</a>
<p><b>Note:</b> The download attribute is not supported in IE or Edge (prior version 18), or in Safari (prior version 10.1).</p>
</body>
</html>
链接页面通过 window.opener 对象获得对链接页面的部分访问权限:- 参见 https://stackoverflow.com/a/45902400/10802527 和 https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
【讨论】: