我有公式,我想通过ajax提交。因此,我正在使用jquery form plugin。好吧,这很好。
我收到了一个html页面,并希望将其传递给fancybox (v2.0)。但如果我要打开fancybox,我会收到这个知名的镀铬警告:
主线程上的同步XMLHttpRequest因不推荐使用 它对最终用户的体验产生不利影响。如需更多帮助, 检查http://xhr.spec.whatwg.org/。
因此,我想知道两件事:
async = false
等。好吧,据我所知,我检查了fancybox的源代码,所以...... 当我尝试第二次提交表单时,为什么会出现以下错误?
未捕获的TypeError:$(...)。ajaxSubmit不是函数。
我有一种感觉,在警告出现后,导致警告的功能会从上下文中删除,因此无法调用......?
如果我不使用fancybox - 例如我只是调用console.log(result)
- 我没有收到错误。所以我觉得fancybox一定有问题。
为什么我不直接调用我想要加载到fancybox内容的页面的url,正常人会这样做?好吧,因为fancybox没有选项将帖子数据传递给网址,因此我需要提交表单。 发送get-data是不可能的。
这是有问题的代码:)
$(domObject).ajaxSubmit({
dataType: "html",
success: function(result) {
$.fancybox.open({
padding: 0,
margin: 0,
content: result,
autoSize: false
});
}
});
答案 0 :(得分:0)
我发现,如果您传递给fancybox的内容中有src属性的脚本标记,则会出现错误。
我猜,fancybox会缓冲内容并等待所有javascript文件都被加载......但这只是一个糟糕的猜测,因为在带有href属性的链接标签上,行为不会发生。
目前我可以轻松绕过这个问题,但我会为fancybox打开一个问题。
答案 1 :(得分:-1)
尝试使用以下代码:
$(domObject).ajaxSubmit({
dataType: "html",
async: true,
success: function(result) {
$.fancybox(result, {
padding: 0,
margin: 0,
content: result,
autoSize: false
});
}
});