根据AJAX请求返回的JS代码字符串创建并加载JS文件

时间:2018-06-24 13:07:33

标签: javascript jquery ajax

我正在尝试动态加载html内容并在ajax响应上执行JS。响应对象具有两个 key:value对

  • content:具有html元素
  • js:具有必需的js

代码如下:

$.post("/some_url.php",{job: "getThatPage"},function(response) {

    /* parsing response as JSON */
    let ajaxResponse = JSON.parse(response);

    /* adding content to page body */
    $("body").html(ajaxResponse.content);

    /* now ajax.js is a string containing the required JS*/
    /* how to execute this script? */

});

从ajax请求返回的脚本即使被添加到DOM也不会执行,这就是为什么我将内容和脚本分开的原因。我知道我可以将所需的JS放入一个单独的文件中,并成功加载getScript(),但这对我没有帮助,因为我的 ajax请求正在为每个登录用户返回一些自定义的JS。

我认为如果能够以某种方式创建.js file并将ajax.js的内容放入其中并使用getScript()方法加载它,则可以解决。那就是我愚蠢的心告诉我的。

我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

您确定内容包含脚本标记吗?如果没有将它包装成一个。

$('body').append ($('<script>').html(ajaxResponse.content));