質問

DNN スキンの先頭に次の 2 行のコードを追加して、DotNetNuke スキンに JQuery を含めようとしています。

<%                              
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 は、ここのページにスクリプトを追加するという私のリクエストを何らかの形でフラッシュしているのでしょうか?私には何が欠けているのでしょうか?私は DNN の初心者です。

役に立ちましたか?

解決

ため息。解決策は、ページのレンダリングコード自体をを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>

他のヒント

あなたはDNNのどのバージョンを使用していますか?あなたはDNNバージョン5. <のhref = "http://blog.theaccidentalgeek.com/post/2008/10/02/DotNetNuke-50-Now-with-jQuery.aspxを使用している場合を除きDNNはjQueryを含めてサポートしていません。 "relが=" nofollowをnoreferrer ">

の詳細については、こちらを参照してください。

この方法で実行すると、コードがどのバージョンをターゲットにするか、およびモジュールが 1 つのページで複数回使用されるかどうかに応じて、問題が発生する可能性があります。

これをより適切に処理するための一連のメソッドを開発しました。これらはバージョンに依存しないため、次のように 1 行で呼び出しを行うことができます。

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

ブール値は、「jQuery UI を含む」、「非圧縮バージョンを使用」、および「noConflict() を含む」です。

完全なコードのリストは、次のブログ投稿で参照できます。 バージョンに依存しないコードを使用して DotNetNuke モジュールに jQuery を含める

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top