所以我想加载jquery作为备份,如果CSS转换不起作用。使用现代化器,它工作正常。
如果我将jquery包含在像
这样的标题中,则jquery可以正常工作<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
但如果我尝试像
那样动态添加它,请不要这样做 var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js")
或
var jqueryscript = document.createElement("script");
jqueryscript.type = "text/css";
jqueryscript.setAttribute("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
document.body.appendChild(jqueryscript);
答案 0 :(得分:2)
在您的第二个片段中,您应该使用:
jqueryscript.type = "text/javascript";
jqueryscript.src = "http://ajax.blahblahblah";
不
jqueryscript.type = "text/css";
jqueryscript.setAttribute("http://ajax.blahblahblah")
.setAttribute()接受两个参数 - 第一个是属性名称,第二个是值。传递一个值无效(我想)......
答案 1 :(得分:1)
对于第一个示例,您必须将脚本标记添加到文档中。不这样做会在内存中创建元素,但浏览器无需下载文件:
var fileref = document.createElement("script");
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
document.getElementsByTagName("head")[0].appendChild(fileref);
请注意,使用el.setAttribute("src", ...)
和el.src =
并没有真正的区别(discussed here)。
如果以这种方式加载JavaScript文件,您必须意识到在加载文件之前jQuery
或$
变量将不可用。您必须在函数中包含使用jQuery
的代码,并在加载脚本后调用函数。一个简单的例子:
function onScriptLoaded() {
alert(jQuery.fn.jquery); // alerts jQuery version number
}
var fileref = document.createElement("script");
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
fileref.onload = onScriptLoaded;
fileref.onreadystatechange = function () {
if (this.readyState == 'complete') {
onScriptLoaded();
}
}
document.getElementsByTagName("head")[0].appendChild(fileref);
答案 2 :(得分:1)
这两个片段都不正确,试试这个:
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
headID.appendChild(newScript);
答案 3 :(得分:0)
问题可能是在执行之前你不能使用jQuery,在这种情况下你必须监听一个事件,并且只在该事件运行之后运行你的jQuery代码。
script.onload = script.onreadystatechange = function() {
// run your jquery dependent code
// only after this function ran
}
答案 4 :(得分:0)
尝试
document.write('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><\/script>');