如何从<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
端必须有一种方法可以执行此操作?
最佳答案
在页面加载处理程序上,您可能会遇到类似以下内容
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));
}
要么
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);