特别是,我很想知道是否可以将用户的点击捕获到其他浏览器标签。我从技术上讲,我可以得到窗口对象的模糊和焦点,但是如果有更紧密地与浏览器(IE,FF,Chrome等)相关联的东西会更好。
答案 0 :(得分:4)
<强> IE 强>
如果您正在编写本机代码(即浏览器插件),则可以使用DWebBrowserEvents2::WindowStateChanged。
以下是您的IDispatch::Invoke()
实施的一些示例代码:
// DWebBrowserEvents2
case DISPID_WINDOWSTATECHANGED: {
if (pDispParams) {
DWORD dwMask = pDispParams->rgvarg[0].lVal;
DWORD dwFlags = pDispParams->rgvarg[1].lVal;
// We only care about WINDOWSTATE_USERVISIBLE.
if (dwMask & OLECMDIDF_WINDOWSTATE_USERVISIBLE)
{
bool visible = !!(dwFlags & OLECMDIDF_WINDOWSTATE_USERVISIBLE));
// ... your code here ...
}
}
break;
}
没有明确的事件发送到页面的Javascript,但模糊事件可能会做你想要的。
<强>火狐强>
在Firefox中,您可以通过为TabAttrModified
添加事件侦听器并检查selected
属性来检测XUL中的标签更改。请参阅MDC documentation for the dealing with the Tabbed Browser。