2011-10-25 41 views
-1

我有一個小頁面:2個版本的jQuery - > 2個文檔。爲什麼?

<!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(); 

但似乎這個加載兩個不同的文件。我的意思是,當你打開頁面時,段落會丟失。怎麼來的?!?

+6

第一個問題:爲什麼你想這樣做擺在首位? – Blazemonger

回答

1

頁面加載後調用document.write將覆蓋整個頁面,參數爲document.write。考慮使用其他類似$().append$().html來更改標記。

myjQuery(function() { 
     $('body').append("<p>Where is foo and bar?!?</p>"); 
    }); 
0

您只能加載一個版本或其他版本。 換句話說,只有一個jQuery庫安裝到頁面上。