使用JavaScript或C#检测浏览器插件?

4

我们正在使用C#编写一个网站,需要检测客户端浏览器是否安装了特定的(自行开发的)插件。

当客户端使用Firefox或Internet Explorer时,我们已经找到了一种方法来实现它。那么在Safari和Chrome中如何实现相同的功能呢?


1
我不同意那些关闭投票。这是一个真正的问题。 - Jeff Yates
没有,我还没有弄清楚Chrome的问题,我已经添加了“Firefox和IE”这样说。 - Yousuf Jawwad
@wefx:平台的意思是指一个网站。 - Yousuf Jawwad
1
你如何在Firefox和IE中实现它? - Heinzi
1
由于您的检测实际上是在JavaScript中完成的(而不是在C#中完成,它只是输出JavaScript),我已添加了javascript标签并更改了标题。希望这将吸引JavaScript专家来帮助您。 - Heinzi
显示剩余3条评论
2个回答

0

您可以将您的插件名称添加到浏览器的 User-Agent 变量中(通过修改此值在浏览器设置存储中)。然后,您可以从 Request 对象中读取它。


如果UserAgent字符串过长,它可能会被截断并且信息会丢失。 - Jeff Yates
@Jeff Yates。在HTTP方面没有限制。你知道吗? - Dariusz
或者(根据插件的能力)将其添加为自定义(X- *)标头。 - Benjamin Podszun
也许不是经常发生,但在Windows上确实会出现这种情况。我遇到过几次这个问题,它导致了一些奇怪的问题,因为ASP.NET将用户代理字符串截断为256个字符。我不会依赖它。 - Jeff Yates

0

由于插件有权限修改 DOM
使用插件,您可以在浏览器请求您的网站时将一些javascript变量(例如var IsMyAddonNameInstalled = 'true')注入到DOM
然后使用AJAX请求隐藏输入字段将其传递到服务器。

PS:这适用于所有浏览器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接