动态更改C#端的脚本标记源

use*_*753 2 javascript asp.net-4.0

如何动态更改<script> src属性Page_Load

当我说动态时,我的意思是它是同一页面Default.aspx,但每个刷新不同的js源都被引用.js选择哪个文件背后的逻辑无关紧要,仅仅是设置它的机制.

我试过了:

<script id="script1" runat="server" language="javascript" src="a.js" type="text/javascript"></script>

但是script1不在.cs旁边.我知道我可以.aspx通过使用<% %>标签来改变它,但我不希望我的逻辑嵌入我的.aspx.必须有一个办法做到这一点在.cs中端Page_Load

Cla*_*edi 6

在您的页面加载处理程序上,您可以使用这样的东西

string csurl = null;
string csname = "myscript";
if (condition)
{
    csurl = "~/a.js";
}
else    
{  
    csurl = "~/b.js";
}

if (!Page.ClientScript.IsClientScriptIncludeRegistered(cstype, csname))
{
    Page.ClientScript.RegisterClientScriptInclude(
        this.GetType(), 
        csname, 
        ResolveClientUrl(csurl));
}
Run Code Online (Sandbox Code Playgroud)

要么

 string csurl = null;
 if (condition)
 {
     csurl = "a.js";
 }
 else    
 {  
     csurl = "b.js";
 }
 Literal script = new Literal();
 script.Text = string.Format(
     @"<script src=""{0}"" type=""text/javascript""></script>",csurl);
 Page.Header.Controls.Add(script);
Run Code Online (Sandbox Code Playgroud)