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

尝试注册你自己的 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 回答
0

您无法从 c# 中检查 jquery 是否包含在目标页面中。您只能在运行时使用 js 从组件中检查。

于 2012-07-31T14:54:01.127 回答