Heim >Web-Frontend >js-Tutorial >Ein einfacher JQuery-Code zum dynamischen Laden von js und css_jquery

Ein einfacher JQuery-Code zum dynamischen Laden von js und css_jquery

WBOY
WBOYOriginal
2016-05-16 16:38:041107Durchsuche

Ein einfacher JQuery-Code zum dynamischen Laden von JS und CSS, der zum Laden einiger gängiger JS- und CSS-Dateien über JS-Funktionen beim Generieren von Seiten verwendet wird.

//how to use the function below: 
//$.include('file/ajaxa.js');$.include('file/ajaxa.css'); 
//or $.includePath = 'file/';$.include(['ajaxa.js','ajaxa.css']);(only if .js and .css files are in the same directory) 
$.extend({ 
includePath: '', 
include: function(file) 
{ 
var files = typeof file == "string" ? [file] : file; 
for (var i = 0; i < files.length; i++) 
{ 
var name = files[i].replace(/^\s|\s$/g, ""); 
var att = name.split('.'); 
var ext = att[att.length - 1].toLowerCase(); 
var isCSS = ext == "css"; 
var tag = isCSS &#63; "link" : "script"; 
var attr = isCSS &#63; " type='text/css' rel='stylesheet' " : " type='text/javascript' "; 
var link = (isCSS &#63; "href" : "src") + "='" + $.includePath + name + "'"; 
if ($(tag + "[" + link + "]").length == 0) $("head").prepend("<" + tag + attr + link + "></" + tag + ">"); 
} 
} 
}); 
$.include('../js/jquery-ui-1.8.21.custom.min.js'); 
$.include('../css/black-tie/jquery-ui-1.8.21.custom.css');

Schreiben Sie diese Funktion in eine common.js-Datei und laden Sie die common.js-Datei in HTML, um das Ziel zu erreichen.
Hinweis:
1. In HTML5 unterstützt das Tag 3f1c4e4b6b16bbbd69b2ee476dc4f83a das Sprachattribut nicht mehr, daher habe ich es gelöscht:

var attr = isCSS &#63; " type='text/css' rel='stylesheet' " : " language='javascript' type='text/javascript' ";
language='javascript' in


2. Als der ursprüngliche Autor js- und css-Tags schrieb, verwendete er:

document.write("<" + tag + attr + link + "></" + tag + ">");

Aber nach dem Üben habe ich festgestellt, dass die Methode document.write() den gesamten Inhalt der Originalseite löscht, was einem Überschreiben entspricht. Dies entspricht offensichtlich nicht meinen Anforderungen . Ich habe gängige JS- und CSS-Dateien in die Seite importiert, aber keine anderen Inhalte meiner Originalseite gelöscht. Deshalb habe ich die API überprüft und sie stattdessen verwendet:

$("head").prepend("<" + tag + attr + link + "></" + tag + ">");

Diese Methode, die Methode $("head").prepend(), wird verwendet, um Inhalte an das Frontend des 93f0f5c25f18dab9d176bd4f6de5d30e-Tags anzuhängen.

Fügen Sie abschließend eine weitere Methode hinzu, die ebenfalls über allgemeine JS implementiert wird. Sie sollte einfacher zu verstehen sein als die obige Methode:

Dynamically loading external JavaScript and CSS files 

To load a .js or .css file dynamically, in a nutshell, it means using DOM methods to first create a swanky new "SCRIPT" or "LINK" element, assign it the appropriate attributes, and finally, use element.appendChild() to add the element to the desired location within the document tree. It sounds a lot more fancy than it really is. Lets see how it all comes together: 

function loadjscssfile(filename, filetype){ 
if (filetype=="js"){ //if filename is a external JavaScript file 
var fileref=document.createElement('script') 
fileref.setAttribute("type","text/javascript") 
fileref.setAttribute("src", filename) 
} 
else if (filetype=="css"){ //if filename is an external CSS file 
var fileref=document.createElement("link") 
fileref.setAttribute("rel", "stylesheet") 
fileref.setAttribute("type", "text/css") 
fileref.setAttribute("href", filename) 
} 
if (typeof fileref!="undefined") 
document.getElementsByTagName("head")[0].appendChild(fileref) 
} 

loadjscssfile("myscript.js", "js") //dynamically load and add this .js file 
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file 
loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn