我希望以某种方式将jQuery插入每个页面,并使用 MINIMUM 代码编写...
换句话说,我不想在每个aspx页面上写<script language="javascript" src="PATH TO JQUERY"></script>
。
到目前为止,我已经考虑过使用Base类并在“page load”事件中插入“Response.Write”。 除此之外,我的其他选择是什么...... web.config?别的什么?
Webforms / MVC解决方案的奖励积分。感谢您的任何建议。
编辑: 在http://www.codeproject.com/KB/aspnet/scriptregister.aspx找到了我喜欢的答案 作者和我一样,不喜欢ClientScript.RegisterClientScriptBlock的标准实现,因为各种原因(比如MSFT坚持使用FORM runat = server标签)并构建了一个更好的捕鼠器。
答案 0 :(得分:2)
使用MasterPages并将置于顶部。有些人说把它放在底部,但在第一次加载之后它仍然被缓存,如果你要操作DOM,我个人宁愿在我的用户真正开始看到正在呈现的页面之前做它。将它放在底部肯定会导致这种情况发生,并且可能使用户感到困惑并导致糟糕的用户体验。
答案 1 :(得分:1)
您可以在全局asax中挂钩页面生命周期的任何事件:
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
Page page = this.Context.CurrentHandler as Page;
if( page != null )
page.Load += new EventHandler(page_Load);
}
void page_Load(object sender, EventArgs e)
{
Page page = (Page)this.Context.CurrentHandler;
page.ClientScript.RegisterClientScriptInclude("jquery", jqueryurl);
}
聚苯乙烯。我想你也可以用http模块做到这一点。
答案 2 :(得分:0)
如果你已经包括
<html><head><title>Title</title></head><body>...</body></html>
在每一页中,我相信你可以挤进一个
<script ...></script>
但我仍然同意肯:看看母版页。
答案 3 :(得分:0)
不知道你是建筑,这可能很难回答。
但是,我可以建议,如果您最终必须修改所有页面,请将它们设置为使用include,如果您必须更新您的jquery版本或添加$(document).ready()函数或添加任何jquery插件,你可以修改include而不必重新修改所有页面。
答案 4 :(得分:0)
best practice是在您网页的底部加载javascript,以防止您的脚本减慢初始页面加载速度。
由于您还特别提到了jquery,我建议您在主页末尾使用此代码:
<script src="http://www.google.com/jsapi"></script>
<script>
// Load jQuery
google.load("jquery", "1");
</script>
这样做的好处是您的用户可能已经在浏览器中缓存了此jquery副本,并且您将始终使用最新版本来启动:)
如果您使用的是母版页,则无需将脚本“插入每个页面”。