1

首先,我只想在 Mozilla Firefox 中触发“加载”事件。

我已经尝试过不同的方法,但我所知道的是,ifrmae 的加载事件只会在“Content-Disposition”标头配置为“内联”时触发。

是否有任何其他事件让我知道弹出 iframe 对话框并要求用户保存文件?

请查看我的以下实现并帮助我获得正确的解决方案。

HTML 代码:

<html>
<head>
    <script type="text/javascript" src="FileName.js"></script>
</head>
<body>
    <input type = "button" value="Download" onclick = "javascript:downloadFile('http://localhost/data.php');"></input>
</body>
</html>

Javascript代码:

var downloadFile = function(url) {
// create hidden iframe
var id = "xyz";
var frame = document.createElement('iframe');
frame.id = id;
frame.name = id;
frame.style="visibility:hidden;display:none";
document.body.appendChild(frame);

var callback = function() {
    alert('completed');
};

frame.onload = callback;
frame.src = url;
};

PHP代码:

// Set Content Disposition header
header('Content-Disposition: attachment; filename=some.txt');
// Set content type header
header('Content-Type: application/octet-stream');

$file = "some.txt";

if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist.");

header('Pragma: no-cache'); 
header('Expires: 0');
readfile($file);
?>

提前谢谢你。希望有合适的解决方案。

4

0 回答 0