我正在开发一个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");
} 但是,只有在通过Page.ClientScript添加jQuery的情况下,才能在普通超文本标记语言中添加jQuery
发布于 2012-07-31 22:54:01
您无法检查c#的目标页面中是否包含jquery。您只能在运行时使用js从组件中进行检查。
发布于 2012-08-01 00:11:35
我能想到的唯一方法就是用jQuery设置一个cookie,然后以某种方式在服务器端检查这个cookie是否存在。
我不是一个C#开发人员,所以不能帮助准确的语法,但原则应该是相同的。
发布于 2012-08-01 15:17:08
尝试注册您自己的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');
});https://stackoverflow.com/questions/11742711
复制相似问题