Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态加载jQuery并使用它_Javascript_Jquery - Fatal编程技术网

Javascript 动态加载jQuery并使用它

Javascript 动态加载jQuery并使用它,javascript,jquery,Javascript,Jquery,如果jQuery库尚未加载,如何正确加载它 somepage.html: <script src="http://example.com/js/widget_init.js" type="text/javascript"></script> <script type="text/javascript"> if (typeof jQuery == 'undefined') { console.log('ERROR: NOT LOADED');

如果jQuery库尚未加载,如何正确加载它

somepage.html:

<script src="http://example.com/js/widget_init.js" type="text/javascript"></script>

<script type="text/javascript">
  if (typeof jQuery == 'undefined') {  
    console.log('ERROR: NOT LOADED');
  }
  else{
    console.log('OK');
  }

</script>
问题在于它不会等待jQuery加载,并且会显示如下错误:

<script type="text/javascript">
  if (typeof jQuery == 'undefined') {  
    console.log('ERROR: NOT LOADED');  // NOT LOADED
  }
  else{
    console.log('OK'); // NEVER GOES HERE
  }

</script>

if(typeof jQuery=='undefined'){
console.log('错误:未加载');//未加载
}
否则{
console.log('OK');//永远不会在这里使用
}
我也试过了,但没有任何效果:

document.write('<script src="/path/to/js/jquery.min.js" type="text/javascript"><\/script>');
document.write(“”);

如何等待jQuery加载,以便我可以使用它?

附加jQuery脚本的代码将附加在检查它的
代码段之后。这就是
.appendChild
的工作原理

方法的作用是:在指定父节点的子节点列表的末尾添加一个节点

资料来源:(强调矿山)

以下是两个解决此问题的选项:

如果可以在页面上插入HTML

您可以从中使用此代码段。它将检查另一个脚本是否已经加载了jQuery,如果没有,则将以内联方式加载它

window.jQuery | | document.write(“”)

只要把它放在你的头上或身体标签上,然后放在依赖它的脚本前面

如果需要在Javascript源代码中动态加载它

按照中的说明操作


附加jQuery脚本的代码将被附加到检查它的
片段之后。这就是
.appendChild
的工作原理

方法的作用是:在指定父节点的子节点列表的末尾添加一个节点

资料来源:(强调矿山)

以下是两个解决此问题的选项:

如果可以在页面上插入HTML

您可以从中使用此代码段。它将检查另一个脚本是否已经加载了jQuery,如果没有,则将以内联方式加载它

window.jQuery | | document.write(“”)

只要把它放在你的头上或身体标签上,然后放在依赖它的脚本前面

如果需要在Javascript源代码中动态加载它

按照中的说明操作


附加jQuery脚本的代码将被附加到检查它的
片段之后。这就是
.appendChild
的工作原理

方法的作用是:在指定父节点的子节点列表的末尾添加一个节点

资料来源:(强调矿山)

以下是两个解决此问题的选项:

如果可以在页面上插入HTML

您可以从中使用此代码段。它将检查另一个脚本是否已经加载了jQuery,如果没有,则将以内联方式加载它

window.jQuery | | document.write(“”)

只要把它放在你的头上或身体标签上,然后放在依赖它的脚本前面

如果需要在Javascript源代码中动态加载它

按照中的说明操作


附加jQuery脚本的代码将被附加到检查它的
片段之后。这就是
.appendChild
的工作原理

方法的作用是:在指定父节点的子节点列表的末尾添加一个节点

资料来源:(强调矿山)

以下是两个解决此问题的选项:

如果可以在页面上插入HTML

您可以从中使用此代码段。它将检查另一个脚本是否已经加载了jQuery,如果没有,则将以内联方式加载它

window.jQuery | | document.write(“”)

只要把它放在你的头上或身体标签上,然后放在依赖它的脚本前面

如果需要在Javascript源代码中动态加载它

按照中的说明操作


成功加载jquery后,您只需要回调函数:

var loadJS = function(url, cb) {
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type", "text/javascript");
        script_tag.setAttribute("src",
            url);
        if (script_tag.readyState) {
            script_tag.onreadystatechange = function() { // For old versions of IE
                if (this.readyState == 'complete' || this.readyState == 'loaded') {
                    cb();//calling callback
                }
            };
        } else { // Other browsers
            script_tag.onload = cb;//calling callback function
        }
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    };
只需使用jquery库路径和回调函数引用调用此函数:

loadJS(hostUrl + "/js/libraries/jquery.js", callback);

成功加载jquery后,您只需要回调函数:

var loadJS = function(url, cb) {
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type", "text/javascript");
        script_tag.setAttribute("src",
            url);
        if (script_tag.readyState) {
            script_tag.onreadystatechange = function() { // For old versions of IE
                if (this.readyState == 'complete' || this.readyState == 'loaded') {
                    cb();//calling callback
                }
            };
        } else { // Other browsers
            script_tag.onload = cb;//calling callback function
        }
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    };
只需使用jquery库路径和回调函数引用调用此函数:

loadJS(hostUrl + "/js/libraries/jquery.js", callback);

成功加载jquery后,您只需要回调函数:

var loadJS = function(url, cb) {
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type", "text/javascript");
        script_tag.setAttribute("src",
            url);
        if (script_tag.readyState) {
            script_tag.onreadystatechange = function() { // For old versions of IE
                if (this.readyState == 'complete' || this.readyState == 'loaded') {
                    cb();//calling callback
                }
            };
        } else { // Other browsers
            script_tag.onload = cb;//calling callback function
        }
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    };
只需使用jquery库路径和回调函数引用调用此函数:

loadJS(hostUrl + "/js/libraries/jquery.js", callback);

成功加载jquery后,您只需要回调函数:

var loadJS = function(url, cb) {
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type", "text/javascript");
        script_tag.setAttribute("src",
            url);
        if (script_tag.readyState) {
            script_tag.onreadystatechange = function() { // For old versions of IE
                if (this.readyState == 'complete' || this.readyState == 'loaded') {
                    cb();//calling callback
                }
            };
        } else { // Other browsers
            script_tag.onload = cb;//calling callback function
        }
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    };
只需使用jquery库路径和回调函数引用调用此函数:

loadJS(hostUrl + "/js/libraries/jquery.js", callback);

JS是同步和中断器。因此,它只能逐行读取并等待
文档。从理论上讲,write
应该可以工作,因为这将阻止以下脚本的执行。
可能有问题,但这是一个非常糟糕的解决方案。最好为脚本的
load
偶数添加一个listen,并将以下代码放入一个将由load回调调用的函数中;如果(typeof jQuery=='undefined'){console.log('BAD');}或者{console.log('OK');}它会说“BAD”。JS是同步和中断程序。因此,它只能逐行读取并等待
文档。从理论上讲,write
应该可以工作,因为这将阻止以下脚本的执行。
可能有问题,但这是一个非常糟糕的解决方案。最好为脚本的
load
偶数添加一个listen,并将以下代码放入一个将由load回调调用的函数中;如果(typeof jQuery=='undefined'){console.log('BAD');}或者{console.log('OK');}它会说“BAD”。JS是同步和中断程序。因此,它只能逐行读取并等待
文档。从理论上讲,write
应该可以工作,因为这将阻止以下脚本的执行。
可能有问题,但这是一个非常糟糕的解决方案。最好是为