internet-explorer - 是否可以检测用户何时切换标签?

标签 internet-explorer firefox google-chrome browser firefox-addon

我特别想知道是否可以捕获用户对不同浏览器选项卡的点击。我想从技术上讲,我可以获得窗口对象的模糊和焦点,但如果有与浏览器(IE、FF、Chrome 等)更紧密相关的东西,那就更好了。

最佳答案

IE

如果您正在编写 native 代码(即浏览器插件),您可以使用 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 .

关于internet-explorer - 是否可以检测用户何时切换标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716115/

相关文章:

javascript - jQuery 计数器函数在 IE < 8 中不起作用

windows - chrome 在重新加载网页时从缓存中加载

angular - 在 docker 内使用 chrome headless 运行 ng 测试(angular-cli 业力测试)

javascript - 如何在 IE 中将鼠标悬停在图像上时删除下划线?

javascript - IE8上 "typeerror object doesn' t支持这个属性或方法的一般解决方案是什么?

javascript - 如何正确获取文本区域内容?

javascript - 为什么 Firefox 和 Chrome 控制台中的 '}{' 之类的构造会返回 'undefined' ?

javascript - 背景图像和颜色在 IE 或 Firefox 中不变

javascript - 每 1 分钟在 chrome 中运行一个脚本

html - 如何在 ie 9-11 中给 iframe 设置不透明度