1

我将 iframe 的 src 属性设置为下载 url,然后使用 appendChild 将 iframe 添加到页面正文以触发下载。如果下载的 url 是完全合格的,即“http://example.abc.com/download/”,那么下载将触发安全栏。如果 URL 是“http://example/download/”,则下载会在没有安全栏的情况下进行。

有人可以解释这是如何以及为什么会发生的吗?我知道当页面尝试从与页面 url 不同的 url 下载文件时,IE8 会引发安全栏,但我认为它不会这么挑剔。此外,当前页面 url 是完全合格的,所以我认为我得到的结果会被逆转。

为了避免安全横幅,只删除整个域的一部分是一个好的解决方案吗?

4

1 回答 1

1

避免安全警告的最简单方法是在新窗口中打开下载 URL 而不是<iframe>.

例如:

HTML:

<a href='//www.example.com/your_download' onclick='init_download(this.href);return false' target='_blank'>Test</a>

JavaScript

function init_download(link) {
    window.open(link, '_blank', 'toolbar=0,location=no,directories=0,status=0,scrollbars=0,resizeable=0,width=1,height=1,top=0,left=0');
    window.focus();
}

在 JS Bin 查看这个例子

于 2012-11-28T09:34:32.600 回答