我有一個asp.net mvc應用程序,我正在嘗試將所有的javascript移出到js文件中。現在我有一個叫做sharedfunctions.js的地方。我可以從另一個調用一個js文件嗎?
問題是,如果我將一些代碼移動到調用sharedfunctions.js文件中的方法的js文件中,它似乎不再有效。
什麼是能夠將js文件中的通用代碼分解出來並允許它們實際正常工作的最佳方式?
我有一個asp.net mvc應用程序,我正在嘗試將所有的javascript移出到js文件中。現在我有一個叫做sharedfunctions.js的地方。我可以從另一個調用一個js文件嗎?
問題是,如果我將一些代碼移動到調用sharedfunctions.js文件中的方法的js文件中,它似乎不再有效。
什麼是能夠將js文件中的通用代碼分解出來並允許它們實際正常工作的最佳方式?
只要所有的.js文件在頁面上的inquestion引用,函數/在所有變量他們將可以訪問任何其他一旦頁面加載。
我正在強調最後一點,因爲它可能是您問題的根本原因。這可能是.js文件加載的順序錯誤。
如果您有一些javascript立即執行(例如,它不是由頁面事件觸發的),那麼它可能會在您的sharedfunctions.js文件包含在頁面中之前開始執行。在這種情況下,sharedfunctions.js中的函數實際上在其他JavaScript執行時不會存在。
看看你是否可以看看事情的順序來消除這些問題。例如,請嘗試並確保將您的sharedfunctions.js加載爲頁面上的第一個腳本文件。
恕我直言,這比試圖破解你現有的js文件直接加載其他js文件的內容更可取。
使用此模式:
function IncludeJavaScript(jsFile)
{
document.write('<script type="text/javascript" src="' + jsFile + '"></scr' + 'ipt>');
}
它可以摧毀整個文件,如果寫在錯誤的地方。 – 2010-01-09 17:20:09
雖然它確實允許一個文件包含另一個文件,但由文件本身管理文件間依賴關係確實是非常糟糕的做法。此外,在包含函數調用的文件完全加載之前,「包含」文件仍然不會被Javascript解釋器解析 - 在這種情況下,它不會有效地導入任何可以由文件中的其他代碼使用的JavaScript代碼進口。 – 2010-01-09 17:38:41
是你認爲你有假冒的覆蓋你的函數問題?如果在定義函數之前就是這種情況,您可以檢查是否已經定義了它。
如果(typeof運算yourFunctionName ==「功能」)
最好的方法是將它全部放在一個文件中,並在您的開發環境中,將其分解爲每個文件類或您使用的任何方法,只需將它們按正確的順序包含在內。
如果要動態包括JS(使用哞工具捷徑,雖然你可以簡單地使用他們的資產庫)
$$('head')[0].adopt(new Element('script',{'type':'text/javascript','src':'path to js file'}));
重複:http://stackoverflow.com/questions/21294/how-do-you-dynamically-load-a-ja vascript-file-think-cs-include和http://stackoverflow.com/questions/1899494/an-other-way-to-load-a-js-file-in-js-code。並添加我自己的鏈接http://codepaste.net/o6gq2n – ram 2010-01-09 18:34:53