Javascript 如何在外部.js文件中包含jQuery?
我想为我的客户提供一个简单的代码来插入和获取我的插件 守则:Javascript 如何在外部.js文件中包含jQuery?,javascript,jquery,Javascript,Jquery,我想为我的客户提供一个简单的代码来插入和获取我的插件 守则: <div id='banner-lujanventas'></div> <script src="http://lujanventas.com/plugins/banners/script.js" type="text/javascript"></script> 问题是我的插件只适用于jQuery。如何检查script.js文件中是否安装了jQuery版本,如果没有,如何检查是否包
<div id='banner-lujanventas'></div>
<script src="http://lujanventas.com/plugins/banners/script.js" type="text/javascript"></script>
问题是我的插件只适用于jQuery。如何检查script.js文件中是否安装了jQuery版本,如果没有,如何检查是否包含jQuery版本?(我只能修改我的/script.js文件)类似这样的内容:
<script>!window.jQuery && document.write(unescape('%3Cscript src="http://yourdomain.com/js/jquery-1.6.2.min.js"%3E%3C/script%3E'))</script>
!window.jQuery&&document.write(unescape(“%3Cscript src=”http://yourdomain.com/js/jquery-1.6.2.min.js%3E%3C/脚本%3E'))
创建自己的脚本元素:
if (typeof jQuery === "undefined") {
var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-latest.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
//edit
window.onload = function() {
$(function(){ alert("jQuery + DOM loaded."); });
}
您必须将真正的onload代码放在
窗口.onload()
函数中,而不是放在$(document).ready()
函数中,因为此时不需要加载jquery.js。您可以检查jquery变量
if (typeof jQuery === 'undefined') {
// download it
}
对于下载选项,例如异步vs.document.write,签出。我找到了一些旧代码,用于查找特定版本的jQuery,如果找不到,则将其加载,并且避免与页面已使用的任何现有jQuery冲突:
// This handles loading the correct version of jQuery without
// interfering with any other version loaded from the parent page.
(function(window, document, version, callback) {
var j, d;
var loaded = false;
if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://code.jquery.com/jquery-2.1.0.min.js";
script.onload = script.onreadystatechange = function() {
if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
callback((j = window.jQuery).noConflict(1), loaded = true);
j(script).remove();
}
};
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script);
}
})(window, document, "2.1", function($) {
$(document).ready(function() {
console.log("Using jQuery version: " + $.fn.jquery);
// Your code goes here...
});
});
小心,如果没有定义jQuery,
如果(!jQuery)
将抛出错误。您应该执行if(typeof jQuery==“undefined”)
它可以包含它,但是jQuery不起作用。我在代码$(function(){alert(“jQuery+DOM加载”);}之后添加了一个事件侦听器代码>并且它从不显示警报。如何修复此问题?您不能直接尝试此类代码,请参阅我的编辑以了解详细信息。如果已经定义了jQuery,则最好检查其版本,以确保正在使用代码所需的最低版本。问题是,如果不是呢?可以包含多个版本的jQuery而不发生冲突吗?这应该在一个外部的.js文件中。我不认为这是故意的。还是这样?