1

WEB_PART を開発していますが、Web パーツが挿入されるマスター ページ プロジェクト内に JQUERY LIB が存在するかどうかを確認する方法があるかどうかを知りたいです。私はこのようなことをしたいと思います:

if (jQuery) {  
 // jQuery is loaded  
Page.ClientScript.RegisterClientScriptInclude(typeof(WebpartSlideShow), "jQuery",                        "/_layouts/Jquery-Cycle/jquery-1.5.1.min.js");
Page.ClientScript.RegisterClientScriptInclude(typeof(WebpartSlideShow), "jQueryCycle", "/_layouts/Jquery-Cycle/jquery.cycle.all.min.js");
               // break;
   } else {
  // jQuery is not loaded
    Page.ClientScript.RegisterClientScriptInclude(typeof(WebpartSlideShow), "jQueryCycle", "/_layouts/Jquery-Cycle/jquery.cycle.all.min.js");

  } 

ただし、jQuery がプレーン HTML に追加された場合は機能しませんが、jQuery が追加された場合のみ Page.ClientScript

4

3 に答える 3

0

jqueryがc#からターゲットページに含まれているかどうかを確認する方法はありません。jsを使用して実行時にコンポーネントからのみ確認できます。

于 2012-07-31T14:54:01.127 に答える
0

独自の JavaScript コードを登録してみてください。これにより、jQuery が既に読み込まれているかどうかがチェックされ、読み込まれていない場合は読み込まれます。クロスブラウザーの例を以下に示します。

function initScript(url, callback) {
    var script = document.createElement('script');
    script.src = url;
    var head = document.getElementsByTagName('head')[0],
    done = false;

    // Attach handlers for all browsers
    script.onload = script.onreadystatechange = function () {
        if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
            done = true;
            callback();
        };
    };

    head.appendChild(script);
};


function initJQuery(callback) {
    //if the jQuery object isn't available
    if (typeof (jQuery) == 'undefined') {
        initScript("/_layouts/YourWebPart/jquery-1.7.1.min.js", function() { callback(); });
    } else {
        callback();
    }   
}

initJQuery(function () {
    alert('loaded');    
});
于 2012-08-01T07:17:08.283 に答える
0

これを行う唯一の方法は、jQuery で Cookie を設定し、サーバー側でこの Cookie の存在を確認することです。

私は C# 開発者ではないので、正確な構文についてはわかりませんが、原則は同じはずです。

于 2012-07-31T16:11:35.233 に答える