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

我特别想知道是否可以捕获用户对不同浏览器选项卡的点击。我想从技术上讲,我可以获得窗口对象的模糊和焦点,但如果有与浏览器(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 .

https://stackoverflow.com/questions/4716115/

相关文章:

oop - 单例类 : static properties or non-static proper

visual-studio-2010 - 微软内部版本 : Access compiler sett

regex - Dreamweaver 用正则表达式替换

svn - 我可以 svn merge 而不总是指定第一个修订版吗?

date - VB6 儒略日期字符串到日期对象

apache - 如何让邮件发送到特定地址触发 Web 服务器上的操作?

entity-framework-4 - 如何首先在 EF4 代码中将表拆分为多种类型?

wpf - 链接内容不适用于资源词典

c - 将多维数组传递给函数 C

jsp - 纯文本 JSP 响应