我有一个页面,用户可以在该页面上提交包含视频的表单。我已经放了一个"请稍候,立即上传"视频上传时的消息,但显然,这还不够。
所以:我想确保用户不会意外离开页面,所以我使用了这段代码:
window.onbeforeunload = function() {
return "Please make sure, the video has finished uploading before closing this window";
};
只是一个问题:系统包含两个单独的.php文件;表格和上传/感谢页面。这意味着如果我将代码放在表单上,它会过早地执行代码(当按下提交按钮时),如果我将它放在send.php文件中,它执行得太晚,因为视频必须在head-tag运行之前上传。
有什么好主意吗?
P.S。一个可能的解决方案是将代码放在表单页面上并使用AJAX和文件处理能力解决方法调用页面,但我觉得这种解决方法可能导致视频丢失 - 所以我认为安全。
答案 0 :(得分:1)
情况已经解决了!
我删除了按钮的提交功能,并将其替换为:
<input type="button" name="button" id="button" value="Send video" onclick="sendInformation();" />
然后我创建了一个javascript,它提交了信息,但同时初始化了onbeforeunload-code。
document.getElementById("pleasewait").style.visibility = 'visible';
document.getElementById("myForm").submit();
window.onbeforeunload = function(e) {
return "Please make sure, the video has finished uploading before closing this window.";
};
它还具有不良影响,onupforeunload-code无效,upload.php页面完全加载的那一刻 - 因此在关闭成功上传时不会询问用户两次。
它完美无缺。
答案 1 :(得分:0)
您可以在用户提交表单时添加JS代码吗?
<form action="upload.php">
<input type="file" name="myfile" />
<input type="submit" />
</form>
<强> upload.php的强>
<?php
// Validate the data, copy the file, etc.
echo '<script>window.onbeforeunload = function(e) { return "Please make sure, the video has finished uploading before closing this window"; }</script>';
?>
那应该有用。但是,我认为您应该选择离开:
<?php
echo '<script>window.onbeforeunload = function(e) { return confirm("Do you want to leave?"); }</script>';
?>