2014-10-30 233 views
0

我在控制檯中收到ReferenceError: serializeProducts is not defined錯誤,不知道爲什麼。參考錯誤:<Function>未定義

  • 我有一個名爲components.js的Javascript文件,其中包含一個函數serializeProducts
  • 模板調用此components.js腳本,然後下面的腳本使用serializeProducts函數。

    <script type="text/javascript" src="{{STATIC_URL}}js/components.js"></script> 
        <script type="text/javascript"> 
        if($("#parsed_found").val() == undefined) 
         items_found = "" 
        else 
         items_found = serializeProducts($("#parsed_found").val().split("\n")); 
    
        if($("#parsed_not_found").val() == undefined) 
         items_not_found = "" 
        else 
         items_not_found = serializeProductsNotFound($("#parsed_not_found").val().split("\n")); 
    

  • components.js肯定是被正確地發現,我可以通過控制檯,200個狀態等訪問

  • 本地運行腳本時,我沒有得到的錯誤,但是當我從亞馬遜S3加載components.js文件這是當它似乎無法正常工作,我很難搞清楚,因爲權限是公開的。

我想知道如果這可能是一個問題,components.js腳本沒有完全加載之前,頁面上的腳本運行?我嘗試添加延遲,但仍然收到錯誤。任何其他想法?

components.js:http://snapeda.s3.amazonaws.com/js/components.js

+0

你能粘貼你的'components.js'嗎? – 2014-10-30 08:50:36

+0

它在這裏:http://snapeda.s3.amazonaws.com/js/components.js – natab 2014-10-30 13:21:26

回答

1

既然你已經使用JQuery,並在你的頁面依賴於外部組件一些代碼,我真的包裹一個$(document).ready(function() { ... });裏面,只是爲了確保在執行指令之前,一切都很好。

不同的選項會將該代碼放在同一個components.js腳本中,但我不知道這對您的情況是否可行。

+0

謝謝,我只是試圖把它包裹在裏面,但仍然沒有運氣。還是一樣的錯誤。 – natab 2014-10-30 13:22:06

+0

爲了安全起見,請嘗試使用'$(window).load'而不是'$(document).ready':它仍然可能只是一個計時問題。 – mccc 2014-10-30 13:37:31

+0

好的,工作!現在我看到另一個文件中的另一個時間問題。我得到'TypeError:undefined不是一個函數'。你認爲這也與時間有關嗎?再說一次,當我從本地運行我的文件時,這會起作用。對此發佈一個單獨的問題是否合理? – natab 2014-10-30 17:58:38