javascript - 使用 Ajax 加载页面并在必要时加载新脚本

标签 javascript jquery ajax dynamic

我有一个 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/

相关文章:

php - CodeIgniter、PHP、jQuery 和 AJAX

javascript - Symfony2 : AJAX request returns full page html

jquery - 从 Action 进行完整重定向

javascript - 如何在 AngularJS 中使用 ng-repeat 动态生成 ng-model ="my_{{$index}}"?

javascript - 返回没有引用的 javascript 函数

javascript - 如何限制对函数的调用?

javascript - 检测并警告用户大写锁定已打开

javascript - 检查 div 内容是否包含数组中的单词并替换它

javascript - JQuery,通过不使用表单列表的按钮创建表单输入

javascript - 如何访问 Colorbox 中的 JavaScript/jQuery 函数?我还没有得到满意的答复