2011-11-29 40 views
-1

我在C#(.NET)中構建一個cms,所有內容都存儲在數據庫中。這包括頁面上的CSS和頁面上的js代碼。我遇到的問題是加載js腳本的處理程序在頁面模板之前處理,因此如果js包含任何jquery對象命令,則它們會拋出錯誤,因爲jquery本身尚未加載並初始化。如何從數據庫加載JavaScript包括jQuery命令

例如,我的模板有接近頂部就像母版頁上一行...

<script src="/scripts/jquery-1.4.2.min.js" type="text/javascript"></script> 

正如您所料。然後,再往下我加載特定的頁面的js代碼:

<script type="text/javascript" src="/Handlers/ServeJsByID.ashx?pgsid=<%=pgsID %>&jsid=<%=jsID %>"></script> 

其中pgsID是當前頁面的ID和jsID是JavaScript記錄我要加載的ID。

我認爲這與.NET頁面的生命週期有關,但我不知道如何通過處理器強制js加載發生在頁面已經加載和處理jquery.js文件之後。

我試圖在代碼中使用Page.ClientScript.RegisterStartupScript落後,但仍得到「預期的對象」的錯誤。

我怎麼可以在代碼中調用JavaScript後,並且它處理後,jQuery的文件被加載?

+0

我覺得這可能是一個C#/,而不是jQuery的網的問題你真的需要。首先加載jQuery文件,如果你想要執行任何jQuery命令 - 就是這樣。 – Matthew

+0

我明白,馬特。我的問題是,它是一個有數百個網站的CMS。我不想要數百個js文件。我需要每個客戶端能夠自定義他們的菜單等,並將js代碼存儲在數據庫中。 –

+0

好的。我只是說,這不是一個jQuery問題。順便說一句,我沒有倒下你,我只是重申了你的問題。 – Matthew

回答

1

如果你試試這個:

$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function() { 
    $("#go").click(function(){ 
    $(".block").animate({ backgroundColor: "pink" }, 1000) 
     .delay(500) 
     .animate({ backgroundColor: "blue" }, 1000); 
    }); 
}); 

http://api.jquery.com/jQuery.getScript/

+0

This Works!謝謝!我可以對每個頁面進行硬編碼,以便通過id加載頁面的頁面JavaScript數據庫條目 –