【问题标题】:javascript not executing in orderjavascript没有按顺序执行
【发布时间】:2018-03-22 23:01:33
【问题描述】:

所以在标题中有点难以解释。从技术上讲,脚本正在按顺序执行,但在执行下一个函数之前不会等待下一个函数完成。有没有办法做到这一点?

    <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>

Javascript:

<script>
     document.getElementById('approve').click();
     setTimeout(function(){
         window.print();
     },2000);
     close();
</script>

所以基本上我正在生成一个 UPS 标签,然后在if ($approve == 'approve shipment') 上生成标签并下载到服务器,我希望它弹出供用户打印,然后不管选择“打印”或“取消”关闭该弹出窗口。

问题是该按钮是一个表单提交,然后重新加载页面,如果我删除 close();,脚本将继续执行现在,脚本将单击 approve 按钮,然后启动计时器,然后在时间结束之前关闭。如果我将代码更改为在等待中使用close();,它只会一直点击approve,并且永远不会让计时器运行:

<script>
     document.getElementById('approve').click();
     setTimeout(function(){
         window.print();
         close();
     },2000);
</script>

【问题讨论】:

标签: javascript


【解决方案1】:

如果问题是提交表单正在重新加载页面,而您根本不想重新加载页面,或者宁愿延迟重新加载页面,那么您可能需要考虑通过 @987654322 进行 POST @ (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest) 而不是使用基本的 HTML 表单。

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 2019-11-14
    相关资源
    最近更新 更多