有一个主页面,该页面上有链接。单击单个链接时,应该加载链接加载到主页的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或类似的。
答案 0 :(得分:2)
你的做法出了点问题。这里的主要问题是你通过ajax获取的新内容的上下文不会被执行因为window.onload已经完成了。
当你提到“表操作代码”时,我假设在html中正确附加内容后需要执行一些javascript函数,所以你可以尝试的是移动那些“操作”到一个单独的js文件并将其包含在index.html中,并在通过ajax获取内容后在成功回调中执行适当的函数。
我认为这应该是更准确的方法。