javascript - 从浏览器运行远程 javascript 而不修改 DOM

标签 javascript browser

我知道运行远程 JavaScript 的唯一方法是添加一个标签,例如

<script src="example.com/ascript.js"></script>

是否可以在 Javascript 中执行类似的操作,而无需在调用过程中修改 DOM?

最佳答案

如果您问的是是否可以从远程源动态加载 Javascript 并在不插入脚本标记的情况下运行它,那么有一些方法可以做到这一点(尽管目前还不清楚为什么暂时插入会成为一种负担) <script> 标签并让系统自行加载并运行代码)。

简而言之,您可以使用 Ajax 调用将一些 Javascript 加载到字符串中,然后可以运行 eval()在该字符串上执行它。这将包含有关在页面上下文中运行来自外部源的 Javascript 的所有常见安全警告。

Ajax 调用(与插入 DOM 中的 <script> 标签不同)将受到同源限制,除非目标站点启用 CORS 访问。

例如:

fetch(someScriptURL).then(function(data) {
    eval(data);
});

关于javascript - 从浏览器运行远程 javascript 而不修改 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758524/

相关文章:

javascript - 使用 AJAX 将 JavaScript 数组发送到 asp.net MVC Controller

sqlite - IndexedDB 性能和 IndexedDB 与 WebSQL 性能比较

browser - 如何从 CFC 文件跟踪或记录

c++ - C++跨浏览器扩展开发

http - 如何在 Firefox 中忽略 "Content-Disposition: attachment"

javascript - React Router - 无法读取未定义的属性 'history'

javascript - 在 jquery 警报内容中循环

javascript - 使用 Javascript 数组(或对象)的单位转换器

javascript - Express + React : CSRF Cookie is undefined in production, 在本地工作