Jquery .load和内部jquery .append

时间:2010-06-08 15:43:40

标签: jquery

我刚刚开始使用jquery来实现.load ajax功能。当我将外部页面加载到特定的div时,它加载正常。在外部页面内部有一个.append,它将javascript添加到头部。这适用于初始加载,但是当我使用.load加载它时,这部分没有显示。

//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);

编辑:每次都会运行警报(cUrl)。但是头部附加不会呈现。

1 个答案:

答案 0 :(得分:1)

jQuery使用innerHTML属性通过.load()方法追加加载的HTML:

  

jQuery使用浏览器的.innerHTML属性来解析检索到的文档并将其插入到当前文档中。在此过程中,浏览器通常会过滤文档中的元素,例如<html><title><head>元素。因此,.load()检索的元素可能与浏览器直接检索文档的内容不完全相同。

无法使用.innerHTML插入脚本(至少不能以跨浏览器兼容的方式插入),这就是为什么.load()不会执行脚本附加脚本的原因。

进一步阅读: