如何在没有<script src =“”> </script>的情况下在Javascript中包含jQuery库

时间:2014-12-06 03:13:31

标签: javascript jquery

我需要在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方式获取脚本。这样做的正确方法是什么?

4 个答案:

答案 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)

您可以使用XMLHttpRequesteval的组合来动态获取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>