【问题标题】:Access web browser dev tools from a separate application从单独的应用程序访问 Web 浏览器开发工具
【发布时间】:2018-07-23 05:48:09
【问题描述】:

我有一个程序可以通过 localhost 地址在 Web 浏览器上显示内容。我的程序是跨平台的,我需要知道浏览器在 Windows 上运行什么操作系统才能使我的程序正常运行。我可以通过在浏览器的开发工具控制台中输入以下命令来做到这一点:

if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";

如何在我的程序中自动执行此操作?我不知道用户将使用什么浏览器,甚至不知道他们将使用什么操作系统。我无法提前知道操作系统是什么的原因是因为 Windows 版本。这是在 Linux 的 Windows 子系统上完成的,这意味着用户的浏览器可以在 Ubuntu 中或(更有可能)在 Windows 中。我需要知道是哪一个才能正确保存文件。

【问题讨论】:

  • 为什么不在起始页通过javascript读取navigator.appVersion,然后设置一个相同的cookie呢?然后您的服务器可以根据您设置的 cookie 值自动为其提供服务
  • 没有提到你的程序是如何开发的,所以我假设它是 html:<script>if(navigator.appVersion.indexOf("Win")!=-1){ //do something here alert('Windows'); } </script> 请提供更多细节

标签: browser operating-system google-chrome-devtools microsoft-edge


【解决方案1】:

如果我理解正确 - 您基本上是在开发一个在不同浏览器上运行不同的 Web 应用程序。

您无需使用浏览器的开发工具即可了解当前正在使用的浏览器。 其实检测用户浏览器的方法有以下几种:

  1. 服务器端用户代理 - “User-Agent”是一个 HTTP 标头,指定用户正在使用的浏览器、版本和操作系统。如果您控制服务器应用程序,只需提取此标头并对其进行解析即可。
  2. 客户端用户代理 - 您可以使用 navigator.userAgent 属性通过 JS 检索用户代理字符串。
  3. 浏览器功能 - 请阅读this 评论。

当然,还有其他更复杂的方法可以了解正在使用的浏览器,但我认为您实际上不需要使用它们,因为用户代理字符串在这里可能就足够了。

【讨论】:

    【解决方案2】:

    我可以建议您在浏览器中编写一个小插件,使识别变得简单易行,您想举个例子吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多