2015-07-03 44 views
3

我有formular,我想通過ajax提交。因此,我正在使用jquery form plugin。好吧,這工作正常。Fancybox使不需要的同步請求?

我收到一個html頁面作爲結果,並且想要將它傳遞給fancybox (v2.0)。但如果我要打開我收到這個衆所周知的鍍鉻警告的fancybox:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/ .

因此,我想知道兩件事情:

  1. 爲什麼會發生這種警告出現,因爲無論是的fancybox既不是我的ajax請求使用async = false等。那麼,據我所知,我檢查了fancybox的源代碼,所以...
  2. 爲什麼我會收到以下錯誤,當我嘗試第二次提交表單時?

    Uncaught TypeError: $(...).ajaxSubmit is not a function.

    我有這樣的感覺,即警告出現後,導致警告的功能將從上下文中移除,因此無法調用...?!

如果我不使用的fancybox - 當我比如就叫console.log(result) - 我不明白的錯誤。所以我猜想,fancybox肯定有什麼問題。

爲什麼我不能直接調用我想要加載的fancybox內容的頁面url,就像普通人一樣呢?好吧,因爲fancybox沒有選擇將郵件數據傳遞給url,因此我需要提交表單。 發送獲取數據是不可能的。


這裏是有問題的代碼:)

$(domObject).ajaxSubmit({ 
    dataType: "html", 
    success: function(result) { 
     $.fancybox.open({ 
      padding: 0, 
      margin:  0, 
      content: result, 
      autoSize: false 
     }); 
    } 
}); 

回答

0

我發現,如果有與在src屬性的腳本標記您傳遞給fancybox的內容,然後出現錯誤。

我想,那fancybox緩衝內容並等待,直到所有的javascript文件被加載......但這只是一個糟糕的猜測,因爲帶有href屬性的鏈接標籤不會發生行爲。

此刻我可以輕鬆繞過這個問題,但我會爲fancybox開一個問題。

+0

時正常工作,在ajax調用中的腳本可能總是與主頁中的其他腳本衝突 – JFK

+0

這對我而言,謝謝! –

-1

嘗試使用下面的代碼:

$(domObject).ajaxSubmit({ 
    dataType: "html", 
    async: true, 
    success: function(result) { 
    $.fancybox(result, { 
     padding: 0, 
     margin:  0, 
     content: result, 
     autoSize: false 
    }); 
    } 
}); 
+0

ajax請求不是問題。 async參數默認爲true。另外,當我刪除代碼打開fancybox,沒有警告/錯誤出現 – emfi

+0

我也面臨同樣的問題,但能夠解決它通過把async:true。我知道它默認是true,但它在我明確寫出 – TechMech