如何在 Safari 调试器中调试延迟加载的 JavaScript

发布于 2024-10-15 02:32:38 字数 284 浏览 9 评论 0原文

我有一个非常简单的脚本,可以在运行时延迟加载 JavaScript。每个页面上都有未知的依赖项,因此在需要时不会全部加载。

与大多数框架一样,它的工作原理是在文档头添加脚本标签。

一切都执行得很好,但 Safari 调试器既不会在“Elements”检查器中看到新的脚本标签,也不会在“Scripts”选项卡中显示它们。错误被报告为发生在根文档上,而不是正确的脚本上。

一个明显的解决方法是正常编写和调试所有内容,然后添加依赖项加载作为最后一步。但我很想知道是否有更好的方法来延迟加载脚本,使调试器更满意?

I have a very simple script that lazy-loads javascripts at runtime. There are unknown dependencies on each page, so they are not all loaded until needed.

Like most frameworks, this works by adding a script tag to the document head.

Everything executes fine, but the Safari debugger neither sees the new script tags in the "Elements" inspector, nor shows them in the "Scripts" tab. Errors are reported as occurring on the root document, rather than the proper script.

An obvious workaround is to author and debug everything normally, and then add the dependency loading as a last step. But I would love to know if there is there a better way to lazy-load scripts that makes the debugger happier?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

2024-10-22 02:32:38

Safari 在“脚本”选项卡中有一个设置,可以在出现异常时暂停,从而在引发异常时在代码中的某个位置提供交互式调试器,或者仅在未处理的异常时提供交互式调试器。

它看起来像一个带有两个垂直条的小八边形。它是一个三态按钮,工具提示总结了每个状态的功能。

Safari has a setting in the Script tab to pause on exceptions, giving you an interactive debugger at the point in code whenever an exception is thrown, or alternately, only on unhandled exceptions.

It looks like a little octagon with two vertical bars. It's a tri-state button, and the tooltips summarize each state's functionality.

时光倒影 2024-10-22 02:32:38

我知道,如果您使用 eval 延迟加载脚本,那么 firebug 调试器可以通过 hack 来获取脚本。

通常,延迟加载的脚本无法从调试器访问。您应该硬链接它并为生产添加延迟加载。

I know that if you lazy load scripts with eval then the firebug debugger has a hack to get at the script.

Normally lazy loaded script can not be accessed from the debugger. You should hard link it and add the lazy loading for production.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文