代码之家  ›  专栏  ›  技术社区  ›  Dave Markle

将jquery include添加到dotnetnuke 4.8外观中没有任何作用

  •  1
  • Dave Markle  · 技术社区  · 16 年前

    我尝试在我的DotnetNuke皮肤中添加jQuery,在我的dnn皮肤顶部添加这两行代码:

    <%                              
    Page.ClientScript.RegisterClientScriptInclude("jquery", "http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js")
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "jQueryNoConflict", "jQuery.noConflict()", True) 
    %>
    

    遗憾的是,当我在页面上查看源代码时,在任何地方都看不到引用jquery.min.js的适当标记。DotnetNuke是否以某种方式清除了我在此处向页面添加脚本的请求?我错过了什么?我是个新手。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Dave Markle    16 年前

    叹息。解决方案是确保将它放在page_Load()方法中,而不是页面呈现代码本身。我想我在页面生命周期中已经太晚了,不能做我想做的事情了。

    <script runat="server">
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Page.ClientScript.RegisterClientScriptInclude("jquery", "http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js")
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "jQueryNoConflict", "jQuery.noConflict();", True)
        End Sub
    </script>
    
        2
  •  0
  •   Glenn Slaven    16 年前

    您使用的是什么版本的dnn?除非您使用的是dnn版本5,否则dnn不支持包括jquery。 See here for more information

        3
  •  0
  •   sth    15 年前

    这样做可能会遇到一些问题,这取决于您的代码将针对哪个版本,以及您的模块是否将在一个页面上多次使用。

    我开发了一组方法来更好地处理这个问题,这些方法与版本无关,因此您可以进行如下的单行调用:

    InjectjQueryLibary(this.Page, false, false, false); 
    

    布尔值为“include jquery ui”、“use uncompressed version”和“include noconflict()”。

    完整的代码列表可在以下博客中找到: Including jQuery in a DotNetNuke Module with Version Independent Code