有没有办法判断我的网站是否被WebBrowser控件实例访问?是否可以通过用户代理与PHP进行识别?或者使用一些JavaScript技巧?还是从服务器端来看,它与常规的IE完全相同?
有没有办法判断我的网站是否被WebBrowser控件实例访问?是否可以通过用户代理与PHP进行识别?或者使用一些JavaScript技巧?还是从服务器端来看,它与常规的IE完全相同?
当任何内容被分配给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
}
}
typeof(window.external.AddSearchProvider)
也可能是独特的。 - EricLaw这只是一个愚蠢的想法,但你可以比较window.outerHeight
和window.innerHeight
,测量IE预期差异,如果不是,则为WebBrowser Control?
这非常hacky,但对于大多数情况可能有效。还有其他一些方法可以尝试,这些方法在IE中以某种方式工作,但在WebBrowser Control中可能不起作用。
例如:
outerHeight
和 innerHeight
之间的差异受用户偏好影响。显示或隐藏书签栏或菜单将影响差异。(在 IE 中,我数了 4 个容易访问的选项会影响差异)。打开或关闭调试面板也会影响它。缩放也会影响它。(我没有预料到,但是就是这样。)然后还有像一般 UI 偏好之类的东西。使用与默认主题不同的主题可能会改变两个数字之间的差异。 - Louis
MSIE 7.0
。我认为这与实际的IE7浏览器或版本7兼容模式下的更近期的IE浏览器没有区别。 - ConnorsFan