我需要在javascript文件(john.js)中远程包含jQuery库。我没试过就试过这个;
(function(d, t) {
var g = d.createElement(t), // create a script tag
s = d.getElementsByTagName(t)[0]; // find the first script tag in the document
g.src = 'http://code.jquery.com/jquery-latest.js'; // set the source of the script to your script
s.parentNode.insertBefore(g, s); // append the script to the DOM
}(document, 'script'));
$( document ).ready(function() {
// My jquery works here
});
我想以javascript方式获取脚本。这样做的正确方法是什么?
答案 0 :(得分:3)
这里的错误是在执行此代码时尚未加载JQuery:
$(document).ready(function() { .. }
按原样,您会收到如下错误:$ is undefined
(或类似的)
您应该使用已创建脚本元素的onload
事件来确保它已加载Jquery。
此示例显示了如何实现目标。祝你好运。
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://code.jquery.com/jquery-latest.js'; // set the source of the script to your script
newScript.onload = function() {
alert("Script is ready!");
$(document).ready(function() {
alert("JQuery is ready!");
});
};
var head = document.getElementsByTagName("head")[0];
head.appendChild(newScript);
答案 1 :(得分:1)
您可以使用XMLHttpRequest
和eval
的组合来动态获取javascript文件,就像getScript
对jQuery一样。
查看我的fiddle。
答案 2 :(得分:1)
以下是关于如何获取的答案,来自另一篇文章:
Adding <script> element to the DOM and have the javascript run?
有人说你可能遇到的另一个问题是当你打电话给你时
$( document ).ready(function() {
// My jquery works here
});
Jquery可能尚未加载
所以你可以尝试一个递归函数来检查jquery是否已经加载了类似的东西(不是teste)......
function launch(callBack){
if (window.jQuery) {
callBack();
} else {
setTimeout(function(){launch(callBack);},100);
}
}
launch(function(){
$( document ).ready(function() {
// My jquery works here
});
});
答案 3 :(得分:0)
通常在调用自定义javascript文件之前在html文件中调用jquery:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="app.js"></script>