可以设置“;文件名"发生错误时显示的内联脚本标记的

Possible to set the "fileName" of an inline script tag that is displayed when errors occur?

本文关键字:显示 脚本 错误 设置 文件名 quot      更新时间:2023-09-26

如果我有一个像下面这样的内联脚本,其中函数foo是未定义的,我希望能够执行以下操作:

<script fileName='foo.js'>
  foo();
</script>

并控制在错误控制台中显示什么文件名和/或控制在处理错误时将什么文件名传递给window.onerror。例如,我想控制发送到的url参数

window.onerror = function (errMsg, url, line) {
    console.log(url); //would like this to output 'foo.js'
    console.log(event.filename);  //would like this to also output 'foo.js'
}

默认情况下,除非脚本链接到外部文件,否则只列出父html文件,但如果能够在不同的脚本标记中有内联代码,说明错误源自哪个脚本标记,那就太好了。

有办法做到这一点吗?

据我所知,javascript对其内部运行的HTML标记视而不见。这样的东西对你有用吗?

<script>
  try {
    foo();
    // the rest of the code...
  } catch (err) {
    console.log('Caught error in foo.js');
    console.error(err);
  }
</script>

如果您将这些脚本动态添加到页面中,您应该能够用这个try/catch代码包装它们,并获得所需的效果。