Javascript 检测浏览器控件
是否有任何方法可以判断我的站点是否被webbrowser控件的实例访问?是否可以通过用户代理w/php来识别它?或者是一些javascript黑客?或者它与服务器端的常规IE完全相同 这只是一个愚蠢的想法,但你不能将Javascript 检测浏览器控件,javascript,webbrowser-control,user-agent,Javascript,Webbrowser Control,User Agent,是否有任何方法可以判断我的站点是否被webbrowser控件的实例访问?是否可以通过用户代理w/php来识别它?或者是一些javascript黑客?或者它与服务器端的常规IE完全相同 这只是一个愚蠢的想法,但你不能将window.outerHeight与window.innerHeight进行比较,测量IE的预期差异,如果不是,则是WebBrowser控件 这是非常令人讨厌的,但在大多数情况下都是可行的。你还可以尝试做其他事情,在IE中以某种方式工作,但在WebBrowser控件中可能不起作用
window.outerHeight
与window.innerHeight
进行比较,测量IE的预期差异,如果不是,则是WebBrowser控件
这是非常令人讨厌的,但在大多数情况下都是可行的。你还可以尝试做其他事情,在IE中以某种方式工作,但在WebBrowser控件中可能不起作用
例如:
- 下载文件
- 打开一个新窗口/选项卡
window.external
时,似乎会引发特定错误。所以支票可以是
const isWebBrowserControl = () => {
try {
window.external = window.external
return false
} catch (error) {
if (error.message === 'I don\'t remember this. Some specific error message.') {
return true
}
}
不过,这是一种潜在的“破坏性”检查。但我真的不觉得它会引起任何问题。是IE。据我所知,它的代码完全相同。“Internet Explorer”基本上是围绕web浏览器控件的一个精简UI。根据和,WebBrowser控件在其用户代理字符串中显示
MSIE 7.0
。我认为这与实际的IE7浏览器或版本7兼容模式下的最新IE浏览器没有区别。我不认为这是可靠的。outerHeight
和innerHeight
之间的差异受用户偏好的影响。显示或隐藏书签栏或菜单将影响差异。(我计算了IE中影响差异的4个容易访问的选项。)打开或关闭调试面板也会影响它。缩放也会影响它。(我没想到会是这样,但我们到了。)然后还有一些东西,比如一般的UI首选项。使用不同于默认主题的主题可能会改变这两个数字之间的差异。typeof(window.external.AddSearchProvider)
可能也是与众不同的。