2011-06-29 71 views
1

我想從Javascript中的數據庫中創建文本。我製作了輸出Javascript代碼的Texts.aspx,並且我想包含它。包含必須以正確的順序完成,因爲Texts.aspx使用其他Javascript文件中的函數。我試圖給這個aspx文件添加一個ScriptReference,但是這會破壞一些東西。以下代碼在ScriptResource.axd上給出了一個404錯誤。將ScriptReference添加到動態腳本

<asp:ScriptManager runat="server" EnableScriptGlobalization="true"> 
    <CompositeScript> 
     <Scripts> 
      <asp:ScriptReference Path="~/Scripts/textFunctions.js" /> 
      <asp:ScriptReference Path="~/Scripts/Texts.aspx" /> 
      <asp:ScriptReference Path="~/Scripts/useTexts.js" /> 
     </Scripts> 
    </CompositeScript> 
</asp:ScriptManager> 

如何包含動態生成的Javascript文件?

+0

我通過在母版頁上添加'

1

請使用IHttpHandler而不是標準的aspx頁面,因爲它是您真正需要的。 如果您必須使用aspx文件,請確保您僅返回JavaScript內容,並且您還應該爲JavaScript設置內容類型。

例如:

public class Texts : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "text/javascript"; 
     context.Response.Write("var texts = { Some: 'some text here' }"); 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

比主或ASPX

<asp:ScriptManager runat="server" ID="sm"> 
    <Scripts> 
     <asp:ScriptReference Path="/Scripts/jquery-1.4.1.js" /> 
     <asp:ScriptReference Path="/texts.ashx" /> 
    </Scripts> 
</asp:ScriptManager> 

終於可以確認它的工作原理(你也將在Firebug中看到你的ashx文件被正確識別,如JavaScript)

<script type="text/javascript" language="javascript"> 
    alert(texts.Some); 
</script>