javascript - 除了使用 eval/handleAs : "javascript" to dynamically fetch scripts (via XMLHttpRequest) 之外,还有什么办法吗

标签 javascript exception xmlhttprequest eval

Here我问了一个关于通过 XMLHttpRequest 动态加载脚本时引发的异常的问题(换句话说,当通过 eval 执行时)

在一个相关问题中,我想知道这样动态加载脚本是否被认为是不好的做法。在我的特定情况下,我有一个 HTML Canvas 元素,而不是加载所有可能的形状,我想动态获取它们,而不重新加载页面,并在返回时执行它们。我遇到的问题是,如果与该形状关联的代码不正确,则显示的错误消息不是很有用(指示 eval 语句的位置,而不是不正确的语句)。有没有另一种方法可以从服务器动态获取代码并执行它,同时在异常发生时更好地通知异常的位置。

最佳答案

如果你想加载一个脚本,使用 <script>元素。如果要动态加载脚本,请创建 <script>动态元素。

var script = document.createElement('SCRIPT');
script.src = "<url to load>";
document.getElementsByTagName("HEAD")[0].appendChild(script);

不能保证同步方式 eval使用同步 XHR 是,但理想情况下,您应该构建代码以利用异步。

关于javascript - 除了使用 eval/handleAs : "javascript" to dynamically fetch scripts (via XMLHttpRequest) 之外,还有什么办法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869957/

相关文章:

xmlhttprequest - 在react中使用axios和fetch已被CORS策略阻止

javascript - Redux 不初始化状态

javascript - Youtube iframe视频在UC浏览器中不起作用

c# - 传递异常的正确方法是什么? (C#)

c# - PowerShell 参数绑定(bind)异常

javascript - 更改 Content-Type 时,Http-Method 从 POST 更改为 OPTIONS

javascript - 使用 FormData 上传多个表单,并使用 Javascript 上传单个 XMLHttpRequest

javascript - 在保持向后兼容性的同时保持创新(在网页设计/开发中)

javascript - 在 page.evaluate() 中声明为 const 的变量未在 PhantomJS 中使用

c# - 为什么我会收到异常 "A public action method was not found on controller"?