如何检测是否在浏览器或某些应用程序软件中打开了HTML文件?

时间:2015-09-24 09:16:58

标签: javascript html

我需要根据HTML文件是在浏览器还是某些桌面应用程序中打开来对HTML文件进行一些更改。

直到现在我在我的剧本中尝试了这个:

Rows of the tablix for example, or this could nest even deeper ...

但无论是在浏览器还是某些应用程序软件中打开HTML文件,这些值都是相同的。

如何在应用程序软件中打开时设置一个将其值从0切换为1的变量,反之亦然。

PS:Matlab,MS Office,Britanica Encyclopedia等应用软件。

2 个答案:

答案 0 :(得分:1)

简短回答,你不能。

在某种程度上更长的答案。您需要做的是根据已知缺陷,缺失/现有属性,用户代理风格等(其中一些称为"浏览器欺骗")来列出每个桌面应用程序实现中的差异。能够解决它们。如果想要的话,仍然可以欺骗这个。

通常还有另一种处理差异的方法,问题是你想要的两种不同的行为是什么?

作为一个示例,如果您仍然需要/坚持要检测到这一点,那么设备检测库可以作为一个开始,例如https://51degrees.com/device-detection

我仍然建议找另一种解决方法。

<强>更新

由于很容易创建桌面应用并返回页面所需的值以使其相信它是普通的浏览器,我认为最好的解决方案是在用户首页上询问用户是否在普通浏览器上或不(通常不知道的人)然后存储在cookie中/设置一个标志并根据用户选择的行为进行操作。

我的意思是很容易欺骗你的页面,以便更好地信任用户选择。

答案 1 :(得分:0)

您可以对设备变得多种多样的情况使用2步验证。首先,您可以使用innerWidth属性按媒体查询字符串检测设备。然后你可以应用它支持的协议匹配的第二个过滤器。

其次,这个问题可能有助于Frame Buster Buster ... buster code needed