【问题标题】:Is it at all possible to determine whether the running browser is the default browser in JavaScript?是否有可能确定正在运行的浏览器是否是 JavaScript 中的默认浏览器?
【发布时间】:2017-03-21 02:22:42
【问题描述】:

在我的应用程序中,知道当前浏览器是否是默认浏览器会非常有用。

可以使用 JavaScript 了解打开我的页面的浏览器是否是默认浏览器(即,如果我要单击另一个应用程序中的链接,将打开的浏览器。例如,电子邮件读者)?


更新

回答E. Sundin和其他可能的读者,我想知道当前浏览器是否是默认浏览器的主要原因是:

当用户在我的一个网站上注册时,我将User-Agent 注册为一个令牌,该令牌在用户注册和用户点击电子邮件验证链接之间不应更改。不幸的是,当用户点击链接时,它会在默认浏览器中打开。

如果我知道,我可以做几件事:

  1. 不在电子邮件中添加链接,只需要求用户将令牌复制/粘贴到他仍然打开的浏览器中
  2. 在用户注册时警告用户,如果他只是点击链接将无法正常工作(如果我知道此浏览器不是默认浏览器。)
  3. 最终忽略该测试(可能是管理员设置,在大多数情况下,网站所有者并不在意...无论如何,大多数人都会这样做...)

当然,人们会在智能手机上注册,在桌面上接收电子邮件并点击那里的链接。这样的测试也不能很好地工作......

【问题讨论】:

  • 据我所知,您的应用应该与浏览器和设备无关。
  • 出于好奇,这个所需功能的用例是什么?
  • 我认为这对任何事情都没有必要,正因为如此,它可能不在标准中,然后浏览器可能会不一样。此外,也不能保证有一种可能的方法来做到这一点,因为浏览器应该至少将一些信息保密。
  • @E.Sundin 我更新了我的问题,因为这作为评论有点太长了。可能还有其他原因,但我给出了我认为它有用的主要示例之一。
  • @MasterBob 我不太确定知道用户是否在他最喜欢的浏览器中是这样的私人信息,不应该泄露。但是在某些情况下,如果您要强制用户在“忘记密码”和“有您的令牌”类型的过程之间使用相同的浏览器,这将有助于提高安全性。一种方法是不在电子邮件中提供 URI……但大多数人习惯于单击 URI……

标签: javascript browser


【解决方案1】:

不,没有用于此的 Javascript API。

请记住,并非所有操作系统甚至都有“默认浏览器”的概念。

【讨论】:

  • 你是说有些系统,比如智能手机,真的没有默认浏览器的概念吗?我不知道,虽然这可能是有道理的。
  • 并非所有 Linux 桌面都有系统范围的默认浏览器。有多种方法可以有效地设置默认值,并且它们可能会相互冲突。 (因此浏览器甚至可能无法最终确定它是否是默认浏览器。)而一些嵌入式系统——包括某些智能手机——也没有真正可设置的默认浏览器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 2011-07-14
  • 2011-03-01
  • 2023-03-16
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多