所以在标题中有点难以解释。从技术上讲,脚本是按顺序执行的,但是在执行下一个之前不会等待下一个函数完成。有没有办法做到这一点?
promised_stream_id
使用Javascript:
<form action="" method="POST">
<input type="submit" style="background:transparent;border:0;color:#ffffff;" name="approve" id="approve" value="approve shipment" />
<input type="hidden" name="ShipmentDigest" value="<?php echo $responseArray['ShipmentConfirmResponse']['ShipmentDigest']['VALUE']; ?>" />
</form>
所以基本上我正在生成一个UPS标签,在<script>
document.getElementById('approve').click();
setTimeout(function(){
window.print();
},2000);
close();
</script>
之后它会生成标签并下载到服务器以及我希望它弹出供用户打印然后不管选择“打印” “或”取消“关闭弹出窗口。
问题是该按钮是一个表单提交,然后重新加载页面,如果我删除if ($approve == 'approve shipment')
,脚本将继续执行,脚本将点击close();
按钮然后启动计时器然后在时间结束前关闭。如果我在等待中将代码更改为approve
,则只需点击close();
并且永远不会让计时器运行:
approve
答案 0 :(得分:1)
如果问题是提交表单正在重新加载页面,而您根本不想重新加载页面,或者宁愿延迟重新加载页面,那么您可能需要考虑通过{{ 1}}(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)而不是使用基本的HTML表单。