我有这个代码,以及一个提交到框架的文件上传表单:
setMyCookie('name','value_1');
$('.myform').submit();
setMyCookie('name','value_2');
问题:Webkit浏览器似乎在表单被提交之前用'value_2'更新'MyCookie',或者在它被提交的确切时刻更新,因此错误的cookie值随之发送。 我希望在提交表单后立即将cookie值更改为“value_2”,以便cookie可以用于其他请求。
以下代码工作正常,但我不认为使用timeout()是最好的解决方案。也许有另一种方法来解决这个问题?
setMyCookie('name','value_1');
$('.myform').submit();
setTimeout(function(){setMyCookie('name',value_2);},100);
感谢。
答案 0 :(得分:3)
没有。提交表单会加载一个全新的页面,通常会结束脚本的当前执行上下文。
例外情况是,如果您将表单提交到框架,在这种情况下会触发onload事件。
答案 1 :(得分:0)
是的,你可以。 See here.
答案 2 :(得分:0)
您必须使用AJAX来实现这一目标。否则,表单将被提交,并且您的函数将要执行的其余JavaScript将被忽略,因为页面已重新加载。