使用window.location.href

时间:2016-06-04 04:02:09

标签: javascript php html

我在php函数中使用window.location.href,强制下载文件而不打开其他窗口。文件下载工作,其余的PHP脚本执行。但是,我在函数中使用javascript后输出的内容都不会显示在iframe中。有没有办法将输出重定向回原始的PHP脚本?

这是php文件中的javascript行:

echo "<script>window.location.href='download.php';</script>";

以下是download.php的代码:

<?php
session_start(); // Starts new or resumes existing session
$filename = $_SESSION['filename']; // Creates variable from session variable
header("Content-Type: text/plain"); // Output text file
header("Content-Disposition: attachment; filename=$filename"); // Output file name
readfile($filename); // Outputs the text file
?>

这是php文件中某些内容的示例,它不会在javascript行之后输出到iframe:

echo 'Test Output';

提前致谢,

修改

我用以下内容替换了javascript行,它完美无缺:

echo "<iframe id='my_iframe' style='display:none;' src='download.php'></iframe>";

1 个答案:

答案 0 :(得分:1)

您无需将重定向放在iframe页面中。

我能想到的最好的方法是使用Andrew Dunn对此question

的回答中提到的隐形框架

引用该答案:

<iframe id="my_iframe" style="display:none;"></iframe>
<script>
function Download(url) {
document.getElementById('my_iframe').src = url;
};
</script>

在主页内有这个。 url基本上是下载URL(在你的情况下是“download.php”)。您可以使用按钮制作下载手册。如果你想要它被迫。将src = url添加到iframe并删除脚本。

我建议研究和使用jQuery。