我知道运行远程 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/