不能在safari上的onsubmit表单事件中使用javascript加载图像

Can't load image using javascript within onsubmit form event on safari

本文关键字:javascript 加载 图像 事件 safari 上的 onsubmit 表单 不能      更新时间:2023-09-26

我想在表单事件"onsubmit"中加载一个JS图像,而不跳过表单的提交动作。

我所做的是:

var img = new Image();
img.onload = function(){
    myfunction();
};
img.src = URL_FOR_PHP_SCRIPT_TO_DO_SOME_LOGIC;
window_sleep(750); //Custom method to hang the CPU for 750ms until the request to call the image is called.

这个逻辑对我来说是必须的,我的意思是我不想使用settimeout来推迟表单提交,我必须以这种方式调用URL_FOR_PHP_SCRIPT_TO_DO_SOME_LOGIC,因为这个代码是在来自不同域的JS文件上。这种逻辑在所有浏览器上都工作得很好,并且发送了调用图像的请求-这正是我需要的-但是在safari上它不调用图像请求,并开始直接发布表单。当浏览器是safari时,我试图在包含表单的页面上添加一个"onunload"事件,但这也没有帮助,表单仍然直接提交数据,而没有开始发送加载图像的请求。

你不能挂Safari和Firefox4+与while循环,这是我猜你正在做你的睡眠功能。

唯一可以挂起浏览器的真正方法是进行同步Ajax调用而不是图像请求。同步调用的缺点是它会锁定浏览器,直到它回来。慢连接可能意味着表单提交前需要等待很长时间。

另一种选择是提交表单到您的服务器,然后转发到另一个服务器。