【发布时间】:2012-12-12 21:28:48
【问题描述】:
我遇到了一个问题,我正在使用 JavaScript 将 ajax HTML 内容加载到我的页面上的元素中,并尝试在加载的内容中执行 JavaScript,这不起作用。
我没有(也不能)在这个项目中使用 jQuery。
我用来加载 ajax 内容的 JavaScript 如下所示:
var loadedobjects = "";
var rootDomain = "http://" + window.location.hostname;
function ajaxPage(url, containerId){
var pageRequest = false;
pageRequest = new XMLHttpRequest();
pageRequest.onreadystatechange = function(){
loadpage(pageRequest, containerId);
}
preventCache = (url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
pageRequest.open('GET', url+preventCache, true);
pageRequest.send(null);
}
function loadpage(pageRequest, containerId){
if (pageRequest.readyState == 4 && (pageRequest.status==200 || window.location.href.indexOf("http") == -1)){
document.getElementById(containerId).innerHTML = pageRequest.responseText;
}
}
如您所见,我将(HTML 页面的)URL 传递给函数ajaxPage()
ajaxPage() 函数在单独的 .js 文件中被调用,如下所示:
ajaxPage('test.html', 'ajax-wrapper');
哪个有效,test.html 正在加载到 id 为“ajax-wrapper”的元素中,但 test.html 页面正在运行。
这是 test.html 页面的样子(只是纯 HTML):
<div class="t-page-title">
View Thread
</div>
<script>
alert('hello');
</script>
即使是加载的 HTML 上的简单 alert('hello'); 也不会触发。该页面没有被缓存,所以这不是问题。如果我使用 jQuery,我会知道该怎么做,但我对找到仅 JavaScript 的解决方案感到有些困惑。有什么建议吗?
【问题讨论】:
-
这段代码实际上是如何调用的?现在它实际上并没有做任何事情。
-
在单独的 .js 文件
ajaxPage('test.html', 'ajax-wrapper');中调用 ajaxPage 函数,该文件正在工作,正在加载 test.html 内容,但加载的内容中没有 javascript 工作内容 -
test.html中的具体内容是什么? -
test.html只是 html 内容,没什么花哨的
标签: javascript ajax