0

職場では、Gmailのチャットを使用しています。これは、Gmailが暗号化されており、ハードドライブに何もインストールしたり保存したりせずにチャットをログに記録するためです。家ではピジンを使っています。自宅で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

元の投稿が古いことは承知していますが、参考のためにここに投稿します。

var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("クリック", true, true, ウィンドウ, 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 に答える
2

私は gmail ウィンドウ内と Adium の両方で gmail チャットを使用しています。友人がチャットを開始すると、両方のウィンドウにメッセージが表示されるので、2 つの別々の場所にログインしても問題ありません。

これはうまくいきませんか?

編集: コメンターが以下に述べたように、gmail の難読化された JavaScript を解読して、リンクが JavaScript 関数にどのように接続されているか、どの関数が呼び出されているかを調べることができます。次に、リンクのクリックをシミュレートする必要はありません。適切な JavaScript 関数を呼び出すだけで済みます。

于 2009-07-23T16:57:59.383 に答える
1

表示されていなくても、チャットできますか?

gchatには連絡先が2、3しかないので、簡単にテストできません...

    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 ページの下部にある次のリンクをクリックします。

最後のアカウント アクティビティ: 何とか詳細

于 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 に答える