在ASP.net页面加载时以编程方式运行javascript的最佳方法是什么?

Dan*_*don 3 javascript asp.net

在我的global.asaxASP.net项目文件中,我正在检查某些条件.当满足这些条件时,我想在页面运行时自动执行javascript代码.

这是我的代码:

if条件然后
Response.Write("<script type =""text/javascript"">")
Response.Write("// Javascript代码做东西")
Response.Write("</ script>")
结束If

虽然这似乎可以执行Javascript代码,但我认为这不是最佳实践,因为此代码将在加载的页面的所有 HTML之前.

在我的页面加载时,以编程方式添加一些额外的Javascript代码的最佳方法是什么?

更新感谢您的回答.太糟糕了,这个解决方案无法在内部工作global.asax.有没有办法在整个网站范围内实现这一目标?似乎global.asax是放置每个页面运行的代码的合理位置... Response.Write工作正常global.asax.

wom*_*omp 7

要正确管理服务器控件或页面中脚本的位置,您应该使用 ClientScriptManager.RegisterStartupScript()

如果您在站点中使用ajax控件,也可以在ScriptManager中使用等效方法: ScriptManager.RegisterStartupScript

这些方法负责在文档加载完成后在适当的位置输出脚本.发布的链接有一些很好的例子可供使用.

请注意,您将无法直接从global.asax使用这些方法,因为它没有引用当前页面.Global.asax用于将事件挂钩到HttpApplication管道,并且与实际的HttpHandler(例如Page对象)分离.为了保持UI的分离,最好在主页或某些基页类中进行检查,然后从那里输出脚本.