大概的概念
我的总体想法是拥有我的网站的移动版和桌面版。用户可以通过页面底部的按钮切换版本。我正在使用 ASP 主题,因此我可以根据所需的站点版本轻松切换主题。
问题
切换主题很棒,但是因为我JavaScript
的项目中已经包含文件,ScriptManager
在我的母版页的以下内容中:
<asp:ScriptManager runat="server" ID="sm">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-2.0.2.min.js" />
<asp:ScriptReference Path="~/Scripts/jQueryMobileBehaviour.js" />
<asp:ScriptReference Path="~/Scripts/Master.js" />
<asp:ScriptReference Path="~/Scripts/jquery.mobile-1.3.1.min.js" />
</Scripts>
</asp:ScriptManager>
当用户切换到桌面版本时,会出现由jquery.mobile-1.3.1.min.js
和引起的问题jQueryMobileBehaviour.js
。有没有办法使用两个 ScriptManagers(某种主题,但用于 js 文件)?
我尝试过的没有成功
我的第一种方法是从 中删除移动JavaScript
文件ScriptManager
,然后将它们手动包含在切换到移动版本的按钮的单击事件中sm.Scripts.Add
。
第二种方法是以编程方式删除JavaScript
这样的移动文件sm.Scripts.Remove
。
protected void CommandBtn_Click(Object sender, CommandEventArgs e)
{
switch (e.CommandName)
{
case "Desktop":
HttpContext.Current.Response.Cookies["theme"].Value = "Desktop";
//sm.Scripts.Remove(new ScriptReference("~/Scripts/jquery.mobile-1.3.1.min.js"));
break;
case "Mobile":
HttpContext.Current.Response.Cookies["theme"].Value = "Mobile";
//sm.Scripts.Add(new ScriptReference("~/Scripts/jquery-2.0.2.min.js"));
//Response.Redirect(Request.RawUrl);
break;
default:
break;
}
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
两种方法都不起作用。
总结问题
- 我的代码有问题吗 - 假设路径应该没问题?
- 有没有更好的方法,可以让我切换
JavaScript
文件,就像使用主题一样?