javascript - 从 AJAX 请求返回的 JS 代码字符串创建和加载 JS 文件
问题描述
我正在尝试动态加载 html 内容并在 ajax 响应上执行 JS。响应对象有两个键:值对。
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()
这就是我愚蠢的头脑告诉我的。
帮助将不胜感激。
解决方案
您确定内容包含脚本标签吗?如果不包在一个。
$('body').append ($('<script>').html(ajaxResponse.content));
推荐阅读
- react-native - 不能使用 React-Native-Orientation
- scala - Scala如何传入子类然后返回相同的子类类型同时使其通用?
- css - 如何使用 react-table 指定第一列的列宽
- python - 使用 Anaconda 时如何更新 python 的默认版本
- ios - 为什么我们在 Core Data 中需要 mainQueueConcurrencyType?
- css - 为什么位置:所有负值的绝对会导致没有内容的扩展元素?
- ios - Xamarin iOS 蓝牙外围设备扫描永远不会看到任何外围设备
- javascript - 一次定位多个类 Material UI
- json - Apple News 自定义字体错误
- flutter - 如何移除运行 Flutter 的设备?