使用AJAX使用纯Javascript加载html页面

时间:2015-07-11 03:07:19

标签: javascript html ajax

有一个主页面,该页面上有链接。单击单个链接时,应该加载链接加载到主页的div标记内的内容。

实施例: MainPage.htm

<html> ... 
    <body> ... 
        <div id="MainContent"> </div> ... 
        <a href='Link1.htm'>Link 1 </a>
    ... 
</html>

Link1.htm

<script src="main.js">...
<div> other contents here </div>

当用户点击链接1时,浏览器不会转到该页面,而是使用AJAX获取该链接文档并加载到#MainContent内。

但是,问题是链接页面有一个表,并且在首次加载时需要运行表操作代码。事实上,链接文档链接到单独的脚本和一些应该在window.onload上运行的函数。

当我使用AJAX加载该链接文档时,我使用以下方法:

MainContent.innerHTML = XHR.responseText;

这无助于在该链接文档上运行window.onload代码。

此类问题是否有任何解决方案或解决方法?

仅供参考:我只是使用Javascript,没有其​​他API,如angular或jQuery或类似的。

1 个答案:

答案 0 :(得分:2)

你的做法出了点问题。这里的主要问题是你通过ajax获取的新内容的上下文不会被执行因为window.onload已经完成了。

当你提到“表操作代码”时,我假设在html中正确附加内容后需要执行一些javascript函数,所以你可以尝试的是移动那些“操作”到一个单独的js文件并将其包含在index.html中,并在通过ajax获取内容后在成功回调中执行适当的函数。

我认为这应该是更准确的方法。