真的很奇怪 Javascript / PHP 行为
Really strange Javascript / PHP Behavior
从一个网页上,我想让用户在服务器上创建一个 cvs 文件并下载它,由 PHP ( header('Content-Description: File Transfer')).
function download_csv_file(){document.location='?action=download_file';}
它就像一个魅力。文件已创建并自动开始下载。
但是,如果我在 JS 函数中添加任何其他 js events/scripts(在同一行换行),文件会在服务器上创建,但不会下载。
真的很奇怪,在下一行的一个简单的评论也打破了这个过程......但是如果评论在同一行,它会起作用!疯了!!!
function download_csv_file(){
document.location='?action=download_file';
// Simple comment
}
不工作!
function download_csv_file(){
document.location='?action=download_file'; // Simple comment
}
有效!!!
但是如果我在同一行添加真正的代码(而不是注释),它就不起作用。
任何解释或想法我可以尝试或搜索什么?..
Chrome 和 Firefox
中的行为相同
document.location
告诉浏览器转到另一个 URL。因此它停止在当前 URL 处执行任何操作,而是导航到一个新的。当然,这意味着该命令后的任何 JavaScript 代码都将被忽略。
N.B。由于您的新 URL 刚好下载了一个文件,您可能仍然可以在后台看到上一页,这可能会让您认为它仍然是当前页面。
您可以通过使用 window.open
在不同的选项卡中访问下载 URL 来绕过这个问题。
P.S。关于评论问题……发生这种情况时,您是否在浏览器的控制台中检查过任何错误?我无法重现问题:https://codepen.io/ADyson82/pen/dyGYQrd
从一个网页上,我想让用户在服务器上创建一个 cvs 文件并下载它,由 PHP ( header('Content-Description: File Transfer')).
function download_csv_file(){document.location='?action=download_file';}
它就像一个魅力。文件已创建并自动开始下载。
但是,如果我在 JS 函数中添加任何其他 js events/scripts(在同一行换行),文件会在服务器上创建,但不会下载。
真的很奇怪,在下一行的一个简单的评论也打破了这个过程......但是如果评论在同一行,它会起作用!疯了!!!
function download_csv_file(){
document.location='?action=download_file';
// Simple comment
}
不工作!
function download_csv_file(){
document.location='?action=download_file'; // Simple comment
}
有效!!!
但是如果我在同一行添加真正的代码(而不是注释),它就不起作用。
任何解释或想法我可以尝试或搜索什么?.. Chrome 和 Firefox
中的行为相同 document.location
告诉浏览器转到另一个 URL。因此它停止在当前 URL 处执行任何操作,而是导航到一个新的。当然,这意味着该命令后的任何 JavaScript 代码都将被忽略。
N.B。由于您的新 URL 刚好下载了一个文件,您可能仍然可以在后台看到上一页,这可能会让您认为它仍然是当前页面。
您可以通过使用 window.open
在不同的选项卡中访问下载 URL 来绕过这个问题。
P.S。关于评论问题……发生这种情况时,您是否在浏览器的控制台中检查过任何错误?我无法重现问题:https://codepen.io/ADyson82/pen/dyGYQrd