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

时间:2011-08-25 13:44:17

标签: javascript image safari load onsubmit

我希望在表单事件“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”事件,但这也没有帮助,表单仍然直接提交数据而不开始发送加载图像的请求。

1 个答案:

答案 0 :(得分:0)

你不能使用while循环挂起Safari和Firefox4 +,这是我猜你在睡眠功能中所做的。

只有挂起浏览器的真正方式才是进行同步Ajax调用而不是图像请求。同步调用的坏处是它会锁定浏览器,直到它回来。缓慢的连接可能意味着在表单提交之前需要等待很长时间。

其他选项是将表单提交给您的服务器,然后将其转发给其他服务器。