我刚刚开始使用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)。但是头部附加不会呈现。
答案 0 :(得分:1)
jQuery使用innerHTML
属性通过.load()
方法追加加载的HTML:
jQuery使用浏览器的.innerHTML属性来解析检索到的文档并将其插入到当前文档中。在此过程中,浏览器通常会过滤文档中的元素,例如
<html>
,<title>
或<head>
元素。因此,.load()检索的元素可能与浏览器直接检索文档的内容不完全相同。
无法使用.innerHTML插入脚本(至少不能以跨浏览器兼容的方式插入),这就是为什么.load()
不会执行脚本附加脚本的原因。
进一步阅读: