2010-06-08 105 views
2

我剛開始使用jQuery的.load ajax功能。當我加載一個外部頁面到一個特定的div加載好。在外部頁面中有一個.append,它將javascript發送到頭部。這適用於初始加載,但是當我使用.load加載它時,這部分不顯示。Jquery .load和內部jQuery的.append

//This is the .load for the div 
function loadContent(elementSelector, sourceUrl) { 

url = ""+sourceUrl+""; 
$(""+elementSelector+"").load(url); 
alert(url); 

} 

//This is the append in the other page that is embedded in a js 

var cUrl = "http://intensedebate.com/js/genericCommentWrapper2.php?acct="+idcomments_acct+"&postid="+idcomments_post_id+"&title="+idcomments_post_title+"&url="+idcomments_post_url; 
alert(cUrl); 


commentScript.type = "text/javascript"; 
commentScript.src = cUrl; 

$('head').append(commentScript); 

編輯:警報(捲曲)運行每次。但是頭部追加不是渲染。

+3

究竟爲什麼你串聯空字符串? – SLaks 2010-06-08 15:46:34

+0

大聲笑我得到的代碼從interwebs。 – speekeazy 2010-06-08 20:25:16

回答

1

jQuery使用的innerHTML屬性經由​​方法追加加載的HTML:

jQuery使用瀏覽器的.innerHTML屬性來解析檢索到的文檔,並將其插入到當前文檔中。在此過程中,瀏覽器通常會過濾文檔中的元素,例如<html>,<title><head>元素。因此,由.load()檢索到的元素可能與瀏覽器直接檢索文檔的元素不完全相同。

腳本不能使用.innerHTML(至少,不是在一個跨瀏覽器兼容的方式)被插入,這就是爲什麼你的​​不會執行你的腳本附加腳本。

延伸閱讀:

+0

那麼所有其他腳本運行。如果我在他們的警報,它運行良好,但.append頭不是呈現。有沒有更好的方法來處理這個問題? – speekeazy 2010-06-08 20:15:00