Javascript 为什么可以';t JQuery set-anchor“;下载「;属性值?
我正在尝试动态设置锚的下载属性的值。这应该是下载文件的文件名。但是,文件名默认为其原始值,而不是我试图给它的值 编辑:有人指出,下载属性值实际上在DOM中发生了更改。但是,下载文件的文件名分配不正确 编辑:动态设置值似乎没有问题。即使是硬编码,文件名也没有设置Javascript 为什么可以';t JQuery set-anchor“;下载「;属性值?,javascript,jquery,html,download,anchor,Javascript,Jquery,Html,Download,Anchor,我正在尝试动态设置锚的下载属性的值。这应该是下载文件的文件名。但是,文件名默认为其原始值,而不是我试图给它的值 编辑:有人指出,下载属性值实际上在DOM中发生了更改。但是,下载文件的文件名分配不正确 编辑:动态设置值似乎没有问题。即使是硬编码,文件名也没有设置 <a href="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" download="image.png">
<a href="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" download="image.png">click</a>
它不起作用,因为您运行JS的网页可能不是托管在
https://www.google.com
发件人:
在跨来源的情况下,下载属性必须与内容处置HTTP头结合,特别是与附件处置类型结合,以避免用户收到可能的恶意活动的警告。(这是为了保护用户在未完全理解的情况下下载敏感的个人或机密信息。)
发件人:
此属性仅适用于指向具有相同来源的资源的链接
它确实成立了。如果你打开开发者工具,你会看到它变成了一个很好的观察工具。问题是,当您单击下载链接时,下载的文件的文件名是错误的——没有更改。我正在编辑我的帖子来澄清这一点。有没有不使用
window.location.href
的理由?这不允许我设置下载文件的文件名。此外,新的HTML5属性应该是实现这一点的“新”方法。在FireFox中使用Firebug进行了测试,我可以看到DOM“下载”的a
更新到“google logo.png”
。它仍然试图保存为错误的名称。所以不确定浏览器从哪里获取这些信息。
<button>Set url and download name for anchor</button>
<a href="" download="">Download Google logo</a>
var googleLogoURL = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
$('button').on('click', function(){
alert("url and filename set");
$('a').prop({
'href': googleLogoURL,
'download': "google-logo.png"
});
});