CSharp - 将javascript添加到DNN的httpmodule中

  显示原文与译文双语对照的内容

我在DotNetNuke有 httpmodule 。 如何将javascript文件添加到这里 httpmodule?

我试过了,但它不起作用:


string text ="<script type="text/javascript">";
text = ((text +"$(document).ready(function () { alert('worked');" +"if ($('div').hasClass('classa')) {") + string.Format("$("#Body").append("<script src='{0}' type='text/javascript'></script>");","~/Resources/Rasta/JS/" +"myjs.js") +"}") +"});" +"</script>";

 page.RegisterClientScriptBlock("mykey" + Guid.NewGuid().ToString(), text);

使用这里代码( 在另一个模块中),但它并不工作:


ClientResourceManager.RegisterScript(page, page.ResolveUrl("~/Resources/myjss/JS/myjs.js"));

时间: 作者:

请在IHttpModule中尝试这里代码


public void Init(HttpApplication context)
{
 context.PreRequestHandlerExecute += new EventHandler(this.RegisterPagePrerenderHandler);
}

private void RegisterPagePrerenderHandler(object s, EventArgs e)
{
 if (HttpContext.Current.Handler is Page)
 {
 Page page = (Page) HttpContext.Current.Handler;
 page.PreRender += delegate (object ss, EventArgs ee) {
 if (page is CDefault)
 {
 page.ClientScript.RegisterClientScriptInclude("key", page.ResolveUrl("~/myjs.js"));
 }
 };
 }
}

感谢 Morteza

作者:

尝试添加脚本标记并更接近该语句。 通常是为我工作的:


<script>
 string text ="<script type="text/javascript">";
 text = ((text +"$(document).ready(function () 
 { alert('worked');" +"if ($('div').hasClass('classa')) {") + 
 string.Format("$("#Body").append("<script src='{0}' type='text/javascript'>
 </script>");","~/Resources/Rasta/JS/" +"myjs.js") +"}") +"});" +
"</script>";
 page.RegisterClientScriptBlock("mykey" + Guid.NewGuid().ToString(), text);
</script>

作者:
...