Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Dom - Fatal编程技术网

包含来自另一个JavaScript文件的jQuery

包含来自另一个JavaScript文件的jQuery,javascript,jquery,dom,Javascript,Jquery,Dom,我试图从javascript文件中包含jQuery。我试过下面的方法,虽然不起作用 var script = '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>'; document.getElementsByTagName('head')[0].appendChild(script); var脚本=”; document.getElemen

我试图从javascript文件中包含jQuery。我试过下面的方法,虽然不起作用

var script = '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>';
document.getElementsByTagName('head')[0].appendChild(script);
var脚本=”;
document.getElementsByTagName('head')[0].appendChild(脚本);
关闭打开的
块,即使它是一个字符串。我会这样做:

(function() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = document.location.protocol + '//code.jquery.com/jquery-1.9.1.min.js';

    document.getElementsByTagName('head')[0].appendChild(script)
})();
脚本块中不能有
,甚至不能在字符串中,因为它将在那里结束脚本块

拆分字符串中的结束标记:

var script = '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></scr'+'ipt>';
var脚本=”;
(函数(){
var script=document.createElement('script');
script.type=“text/javascript”//让老浏览器满意。
script.src=window.location.protocol+'//code.jquery.com/jquery-1.9.1.min.js';
//浏览器阻止跨协议下载。
(document.getElementsByTagName('head')[0]| | document.getElementsByTagName('body')[0]).appendChild(script);//在Opera中,一个站点可以不使用
})();

只需使用jQuery getScript()方法加载jQuery:

…只是开玩笑

请尝试以下代码:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://code.jquery.com/jquery-1.9.1.min.js';
head.appendChild(script);
发件人:


此外,如果在https页面上使用,则需要从兼容https的CDN加载脚本,如Google托管的库(src=“//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js”)

首先,变量脚本包含的序列
,无法使其在代码中显示出来,因为浏览器将假定(而且必须)它是
标记关闭。 例如,如果脚本代码包含语法错误,这是一个字符串变量,没有close
,它看起来像

<script>var bad = "abcd ;</script>

无论如何,我更喜欢使用模块和JavaScript加载程序,比如。

使用一个小型的可重用脚本加法器:

function fetch(url){
 var d=document, s='script';
 d.getElementsByTagName(s)[0].parentNode.appendChild(d.createElement(s)).src=url;
}

fetch('//code.jquery.com/jquery-1.9.1.min.js');

并非所有浏览器中的所有页面都有标题,但是如果脚本正在运行,那么兄弟脚本标记也可以…

AppendChild不会自动解析HTML stringsNice,谢谢!只需一件事,我的jquery代码与您的代码现在包含的.js文件相同(您的代码位于顶部是.js文件)所以它不会加载jquery。有什么解决方案吗?再一次,非常感谢!为什么需要设置script.type?@dandavis:当您省略
type
时,较旧的浏览器不会假设mimetype是
text/javascript
,所以他们永远不会执行脚本。
window.location.protocol
将冒号保留在末尾.
<script>var bad = "abcd ;</script>
var script = '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"><\/script>';
document.getElementsByTagName('head')[0].appendChild(script);
var script = document.createElement("script");
script.src = "http://code.jquery.com/jquery-1.9.1.min.js";
document.getElementsByTagName("head")[0].appendChild(script);
function fetch(url){
 var d=document, s='script';
 d.getElementsByTagName(s)[0].parentNode.appendChild(d.createElement(s)).src=url;
}

fetch('//code.jquery.com/jquery-1.9.1.min.js');