我有一个小页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="temp.js"></script>
</head>
<body>
<p>foo</p>
<p>bar</p>
</body>
</html>
我正在尝试加载两个不同版本的jQuery:
// temp.js
jQueryScriptOutputted = false;
initJQuery = function() {
//if the jQuery object isn't available
if (typeof(myjQuery) == 'undefined') {
if (!jQueryScriptOutputted) {
//only output the script once..
jQueryScriptOutputted = true;
//output the script (load it from google api)
document.write("<script type=\"text/javascript\" src=\"jquery-1.6.4.js\"></script>");
document.write("<script type=\"text/javascript\">var myjQuery = $.noConflict(true);</script>");
}
setTimeout("initJQuery()", 50);
} else {
myjQuery(function() {
// Check jQuery versions
console.log('myjQuery version = ' + myjQuery().jquery);
console.log('$ version = ' + $().jquery);
console.log('jQuery version = ' + jQuery().jquery);
// Get the data of the actual poll
document.write("Where is foo and bar?!?");
});
}
}
initJQuery();
但似乎这会加载两个不同的文档。我的意思是,当你打开页面时,段落会丢失。怎么来的?!?
答案 0 :(得分:1)
在页面加载后调用document.write
将使用document.write
参数覆盖整个页面。请考虑使用$().append
或$().html
之类的其他内容来更改标记。
即
myjQuery(function() {
$('body').append("<p>Where is foo and bar?!?</p>");
});
答案 1 :(得分:0)
您只能加载一个版本或另一个版本。 换句话说,只有一个jquery库安装到页面。
答案 2 :(得分:0)
问题是您要将<script>
标记写入文档而不是<head>
请参阅这些instructions for full information on how to dynamically load jQuery.
该教程解释了如何做得非常好。
希望这有帮助。