2014-04-01 27 views
0

我遇到了一個問題我發現調試非常困難,它似乎只發生在firefox上,當Firefox從iframe中加載我的代碼時。我不太瞭解瀏覽器的差異,爲了實現這個目標,問題是間歇性的。我已經追蹤到這個錯誤在JavaScript中,我沒有得到鉻。有什麼可以導致firefox無法加載iframe中的javascript

TypeError: $(...).autocomplete(...).data(...) is null

現在我認爲被調用的相關代碼是來自像這樣的javascript自動完成功能。

$("#field").data("ui-autocomplete")._renderItem = function(ul, item) { ... } 

是困惑我的事情是它似乎是一個間歇的Firefox的錯誤,我一直無法重現它的鉻。有沒有人對這裏發生的事情有所瞭解?

N.B.我讀過thisthis和幾個相同的,但我的問題是,是。數據返回null,而不是.data("autocomplete")undefined ...提前

感謝。

+0

哦,當然,只是讓我知道如果我可以添加任何細節,我很樂意。 –

+0

帖子鏈接檢查問題,如果可能的話。 –

+0

控制檯/ Firebug出現什麼錯誤? – Aditya

回答

1

你能提供一些jsFiddle或者一個具體的例子嗎?很難說出什麼問題。

反正或許可以解決這個問題:

if($("#field").data()){ 
    var fieldAuto = $("#field").data("ui-autocomplete"); 
    if(fieldAuto){ 
     fieldAuto._renderItem = function(ul, item) { ... }; 
    } 
} 

ui-autocomplete依賴於jQuery的版本,所以它可能是可能的,你必須改變它

+0

謝謝,這是一個很好的觀點,我會嘗試一下你的建議,並試着讓jsfiddle啓動並運行如果無法使用SSCE(不幸的是它是一個緊密耦合的系統,所以我可能需要一段時間。) –

+0

如果有人很好奇,我設法找出問題的原因。 JavaScript正在每個頁面上運行,並且會在沒有所需元素(導致錯誤)的頁面上崩潰。這是一種解決方案,另一種解決方案是改變功能以確保它只能在所需的頁面上運行。 –

1

根據jQuery UI的版本你'使用它將會是「自動完成」或「ui自動完成」。

var autoComplete = input.data("ui-autocomplete"); 
if(typeof(autoComplete) == "undefined") 
    autoComplete = input.data("autocomplete"); 
autoComplete._renderItem = function(ul, item) {....} 

請檢查並讓我知道,以防有任何進一步的問題。

乾杯.. :)

相關問題