0

在工作中,我使用 Gmail 的聊天功能,因为它是加密的并且可以记录聊天内容,而无需安装或保存任何内容到硬盘驱动器。在家里,我使用 Pidgin。当我在家里登录 GMail 时,我必须退出聊天,否则消息最终会出现在错误的位置。当我在工作中登录 GMail 时,我必须重新登录才能聊天。

换句话说,当我在家中启动 Firefox 时,我希望自动禁用 Gmail 的聊天功能。当我在工作中启动 Firefox 时,我希望自动启用 Gmail 的聊天功能。

有没有办法使用 Greasemonkey 脚本或类似的脚本来强制登录和注销特定机器?看起来很简单;只需跟随一个 URL 或模拟点击一个链接。不幸的是,Gmail 不使用实际链接。

注销时:

<span tabindex="0" role="link" action="si" class="az9OKd">Sign into chat</span>

登录后,在下拉菜单中:

<div tabindex="-1" id=":1mj" role="menuitem" class="oA" value="si"><div class="uQ c6"/>Sign into chat</div>

<div tabindex="-1" id=":8f" role="menuitem" class="oA" value="sia"><div class="uQ c5"/>Sign into AIM®</div>

<div tabindex="-1" id=":8e" role="menuitem" class="oA" value="so"><div class="uQ df"/>Sign out of chat</div>

在页面底部:

<span id=":im" class="l8 ou" tabindex="0" role="link">turn off chat</span>

<span id=":im" class="l8 ou" tabindex="0" role="link">turn on chat</span>

任何人都知道如何使用 JavaScript “单击”这些非链接或访问它们的功能?我想“so”表示“退出”,“si”表示“登录”,“sia”表示“登录 AIM”。我可以以某种方式直接调用这些操作吗?

是否有其他方法可以禁用聊天?

4

6 回答 6

2

我在 gmail 窗口和 Adium 中都使用 gmail 聊天,当朋友发起聊天时,我会在两个窗口中收到他或她的消息,因此在两个不同的地方登录不是问题。

这对你不起作用吗?

编辑:正如评论者在下面所说,您可以破译 gmail 的混淆 javascript 以尝试找出链接如何附加到 javascript 函数,以及调用了哪些函数。然后就不需要模拟点击链接,只需要调用相应的javascript函数即可。

于 2009-07-23T16:57:59.383 回答
2

我知道原来的帖子很旧,但我在这里发帖以供参考。

var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("点击", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); YourElement.dispatchEvent(evt);

dispatchEvent 参考来自: https ://developer.mozilla.org/en/DOM/element.dispatchEvent

于 2010-03-14T03:22:43.860 回答
1

如果它甚至没有显示,人们还能和你聊天吗?

我在 gchat 上只有几个联系人,所以无法轻松测试...

    window.addEventListener('load', function() {
  if (unsafeWindow.gmonkey) {
    unsafeWindow.gmonkey.load('1.0', function(gmail) {
      function logOffChat() {
        var leftPane = gmail.getNavPaneElement().childNodes[0];
        var chat = leftPane.childNodes[3];

        chat.id = 'googleChatElement';
    chat.parentNode.removeChild(chat);
      }

      logOffChat();

    });
  }
}, true);

我的猜测是,它仍然会在后台运行所有内容,并且您将显示为已登录...

于 2009-08-05T01:02:47.753 回答
1

我不确定您是否知道,但您可以远程结束 Gmail 会话。点击 Gmail 页面底部的链接:

上次帐户活动:blah blah 详细信息

于 2009-07-23T16:59:29.567 回答
0

添加*chatenabled.mail.google.com*到 Adblock 的过滤器列表会阻止 Gmail 聊天连接。这将解决我的问题,即使我无法弄清楚如何单击“链接”。

于 2009-08-07T14:38:52.210 回答
-1

可能是我不明白。但是您可以尝试使用 Selenium 以某种方式解决这个问题吗?它是一个在 Web 应用程序中自动化功能测试的框架。

于 2009-08-05T12:37:51.507 回答