Javascript/CSS加载并附加到文档
我已经编写了一个jQuery插件,但我想让它检查jQuery是否已加载,如果未加载,则加载它,以及其他几个javascript文件,并检查CSS文件是否已加载,如果未加载,则加载它 我想知道怎么做Javascript/CSS加载并附加到文档,javascript,jquery,Javascript,Jquery,我已经编写了一个jQuery插件,但我想让它检查jQuery是否已加载,如果未加载,则加载它,以及其他几个javascript文件,并检查CSS文件是否已加载,如果未加载,则加载它 我想知道怎么做 非常感谢您抽出时间。以下几点应该可以。不过,它可能没有完全优化 if (typeof jQuery == "undefined") { var js = document.createElement("script"); js.setAttribute("src",...path to
非常感谢您抽出时间。以下几点应该可以。不过,它可能没有完全优化
if (typeof jQuery == "undefined") {
var js = document.createElement("script");
js.setAttribute("src",...path to jquery...);
js.setAttribute("type","text/javascript");
document.head.appendChild(js);
//ditto for other files you mentioned
}
function isCSSLoaded(uri) {
var links = document.getElementsByTagName("link");
for (var i =0, len = links.length; i<len;++i) {
if (links[i].getAttribute("src") === uri) return true;
}
return false;
}
if (isCSSLoaded(...pathToYourCSSFile...) {
var css = document.createElement("link");
css.setAttribute("href",...path to css file...);
css.setAttribute("media","screen");
css.setAttribute("rel","stylesheet");
css.setAttribute("type","text/css");
document.head.appendChild(css);
//ditto for other files you mentioned
}
if(typeof jQuery==“未定义”){
var js=document.createElement(“脚本”);
setAttribute(“src”,…jquery的路径;
setAttribute(“type”、“text/javascript”);
document.head.appendChild(js);
//你提到的其他文件也一样
}
函数iscssload(uri){
var links=document.getElementsByTagName(“链接”);
对于(var i=0,len=links.length;i来说,下面的方法应该是可行的。不过,它可能没有完全优化
if (typeof jQuery == "undefined") {
var js = document.createElement("script");
js.setAttribute("src",...path to jquery...);
js.setAttribute("type","text/javascript");
document.head.appendChild(js);
//ditto for other files you mentioned
}
function isCSSLoaded(uri) {
var links = document.getElementsByTagName("link");
for (var i =0, len = links.length; i<len;++i) {
if (links[i].getAttribute("src") === uri) return true;
}
return false;
}
if (isCSSLoaded(...pathToYourCSSFile...) {
var css = document.createElement("link");
css.setAttribute("href",...path to css file...);
css.setAttribute("media","screen");
css.setAttribute("rel","stylesheet");
css.setAttribute("type","text/css");
document.head.appendChild(css);
//ditto for other files you mentioned
}
if(typeof jQuery==“未定义”){
var js=document.createElement(“脚本”);
setAttribute(“src”,…jquery的路径;
setAttribute(“type”、“text/javascript”);
document.head.appendChild(js);
//你提到的其他文件也一样
}
函数iscssload(uri){
var links=document.getElementsByTagName(“链接”);
对于(var i=0,len=links.length;i您的插件,除非它在大小和复杂性上与jQuery相当,否则可能不应该加载jQuery。我认为简单地检查jQuery是否存在,如果不存在则抛出警告就足以让任何开发人员了解发生了什么
我想你可能正在开发一个插件,人们通常会在不“知道”是否有jQuery的情况下包含它。除非你的插件在大小和复杂度上与jQuery相当,否则你可能不应该加载jQuery。我想,简单地检查jQuery是否存在,如果没有,则抛出警告就足够了开发人员需要了解正在发生的事情
我想您可能正在开发一个插件,人们通常会在不“知道”是否有jQuery的情况下包含该插件。以检测是否加载了CSS
将此添加到CSS中:
._css_loaded_test {
display: none;
}
定义此JavaScript函数:
function cssIsLoaded() {
var test = document.createElement("div");
test.className = "_css_loaded_test";
return getComputedStyle(test, null).display === "none";
}
检测是否加载了jQuery
使用此JavaScript检测是否加载了jQuery:
if (typeof jQuery !== "undefined") {
// put your code here
}
检测是否加载了CSS
将此添加到CSS中:
._css_loaded_test {
display: none;
}
定义此JavaScript函数:
function cssIsLoaded() {
var test = document.createElement("div");
test.className = "_css_loaded_test";
return getComputedStyle(test, null).display === "none";
}
检测是否加载了jQuery
使用此JavaScript检测是否加载了jQuery:
if (typeof jQuery !== "undefined") {
// put your code here
}
您的iscssload函数不检查CSS是否已加载,只检查标记是否与指定的src一起出现。如果我以编程方式创建链接标记并将其与src、X一起放入文档中,然后立即使用您的函数,它将错误地说CSS已加载。您的iscssload函数不检查r是否已加载CSS,只是标记与指定的src一起出现。如果我以编程方式创建一个链接标记,并将其与src、X一起放入文档中,然后立即使用您的函数,则会错误地说CSS已加载。我也不关心ie:),但我不认为getComputedStyle()
将适用于ie8及之前的版本。可能使用currentStyle
-请参阅:我也不关心ie:),但我认为getComputedStyle()
将不适用于ie8及之前的版本。可能使用currentStyle
-请参阅: