我有一个 page1,它有一个包含文章的包装器。
<div id="wrapper">
<article>...</article>
<article>...</article>
<article>...</article>
<article>...</article>
</div>
我正在使用 Ajax 从 page2 加载新文章并将它们附加到包装器
$.ajax({
url : page_to_load,
success : function (data) {
$('article',data).appendTo('#wrapper');
}
});
但有些新文章可能需要特定的脚本,这些脚本未在 page1 中加载,但如果直接访问 page2 则会加载。
所以问题是新文章中的一些内容由于缺少这些脚本而中断。
什么是最好的解决方案?我可以考虑检查新加载的页面脚本并将它们与已加载的页面脚本进行比较并下载新的,但我不知道该怎么做。
编辑
我注意到如果我将数据类型设置为“html”我就无法搜索脚本,尽管它们在那里:
$('script',data)//doesn't match anything
但如果我这样做:
console.log(data);
我可以用 <html>
查看整个页面和 <script>
标签
最佳答案
实际上没有问题,如果您将 HTML 附加到 Dom,那么脚本调用将被解释为页面是直接加载的,只需确保您使用与简写 jquery $.POST 方法相同的参数。
我实际上一直这样做,而且 <script src="">
被正确调用和解释
只需确保您从正确的范围访问脚本,就像在 page1 上硬编码 html 一样。
如果这不起作用,请使用网络检查器检查脚本是否已加载。
关于javascript - 使用 Ajax 加载页面并在必要时加载新脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20197829/