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/