Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测浏览器控件_Javascript_Webbrowser Control_User Agent - Fatal编程技术网

Javascript 检测浏览器控件

Javascript 检测浏览器控件,javascript,webbrowser-control,user-agent,Javascript,Webbrowser Control,User Agent,是否有任何方法可以判断我的站点是否被webbrowser控件的实例访问?是否可以通过用户代理w/php来识别它?或者是一些javascript黑客?或者它与服务器端的常规IE完全相同 这只是一个愚蠢的想法,但你不能将window.outerHeight与window.innerHeight进行比较,测量IE的预期差异,如果不是,则是WebBrowser控件 这是非常令人讨厌的,但在大多数情况下都是可行的。你还可以尝试做其他事情,在IE中以某种方式工作,但在WebBrowser控件中可能不起作用

是否有任何方法可以判断我的站点是否被webbrowser控件的实例访问?是否可以通过用户代理w/php来识别它?或者是一些javascript黑客?或者它与服务器端的常规IE完全相同

这只是一个愚蠢的想法,但你不能将
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)
可能也是与众不同的。