HTML 功能仅在作为实时服务器启动(或在 Internet Explorer 模式下打开)时才有效

HTML feature only works when launched as Live Server (or opened in Internet Explorer Mode)

提问人:Dominik Rolfes 提问时间:7/27/2023 更新时间:7/27/2023 访问量:51

问:

我正在将用于将图标导入 powerpoint 的功能从基于 Internet Explorer 的解决方案迁移到更现代的解决方案,因为 Internet Explorer 不再可用。为此,我目前正在实现基于 WebView2 的方法。

为此,我有一个 Icon2.html(以及它附带的代码),当作为这样的文件打开时, 不允许我在预览中更改图标的颜色,这里的预览图标应该是橙色的。 Html 页面使用修改后的版本,即光谱颜色选择器来选择颜色

由于该功能最初是为 Internet Explorer 构思的,因此在使用 Internet Explorer 模式在 Microsoft Edge 中启动该功能时,该功能工作正常。 然而,一件奇怪的事情是,当我使用 VSCode 实时服务器扩展将 Icons2.html 作为实时服务器启动时,颜色在现代浏览器上变化得非常好。 我确实使用 Edge、Firefox 和 Chrome 浏览器测试了 Html(并询问了同事,问题不是本地的),所以看起来 Live Server 确实有所帮助。

由于我没有太多使用 Html、Javascript 和 CSS 的经验,因此非常感谢有关从哪里开始寻找的提示。

javascript html 互联网浏览器 liveserver

评论

0赞 Community 7/27/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 dodrg 7/27/2023 #1

并非所有 Web 代码都经过编程(和测试)以使用协议语法处理 URI。file:

您的示例屏幕截图显示,使用直接本地文件访问时会出现问题:

C:\Users\....
# converts to
file:///C:/Users/....

“Live Server”(与任何其他服务器一样)将使您能够使用协议语法,这是 Web 代码本身所期望的。http:

问题(我不会称其为错误)是“光谱颜色选择器”编程的一部分,也许只是您的自定义版本。

我希望找不到一些依赖文件。

  • 检查 Web 浏览器开发人员工具的日志。
  • 应使用相对路径。
  • URI 分析可能过于宽松。也就是说,在这种情况下可能会令人恼火。:
  • 当然还有更多......

也许你应该记住:
Web 代码的意图不是在文件系统上本地运行,而是在 Web 服务器上运行。这样的代码可以在其他上下文中工作,例如使用 file:-URI,这应该类似于一个受欢迎的额外内容。

评论

0赞 Dominik Rolfes 8/2/2023
谢谢你的提示!我找到了限制因素,它是 .getSVGDocument() 方法,它在使用该格式的较新浏览器中被禁用,因为它授予对用户文件系统的访问权限。file: