1

我在 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"));
4

2 回答 2

2

在您的 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"));
            }
        };
    }
}

感谢莫特萨

于 2014-01-15T14:35:26.163 回答
0

尝试添加一个脚本标签并靠近语句......通常对我有用:

<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>
于 2014-02-18T08:39:38.267 回答