1

cc:addressの入力フィールドを表示するために、Chrome拡張機能からGmailの[AddCc]スパンを自動的にクリックしようとしています。

スパンは次のようになります。

<span id=":25j" class="el" role="link" tabindex="2">Add Cc</span>

私の知る限り、イベントリスナー/onclickは定義されていません。

私は試した

   $('iframe').each(function() {
    $('span:contains("Add Cc")',this.contentDocument).first().click();
   }

   $('iframe').each(function() {
     $('span:contains("Add Cc")').first().trigger( jQuery.Event("click"));
   }

更新:実際、スパンはiframe内にあります。

誰かがこれらのスパンのクリックをトリガーする方法を教えてもらえますか?

リンクを手動でクリックしたときに発生するイベントを監視/記録する方法はありますか?

更新: Chrome開発ツールでブレークポイントを設定する方法を指摘してくれた@veeTrainに感謝します

4

2 に答える 2

1

コード経由で Cc をクリックする方法がわかりません。あなたの試みは私には良さそうです。

Chrome の開発者ツールを使用して、発生するイベントを監視し、多くのことを学ぶことができます。一時停止、ブレーク、ステップ スルーなどの変数を監視し、コール スタックを確認できます。

ただし、最初にスクリプト内のクリック イベントをオーバーライドしてから、それで中断することをお勧めします。

(未テスト)

$('span:contains("Add Cc")').click(function() {
    // Set a break point here and then when a click on Cc is
    // generated, you should be able to investigate
});

jQuery を手動でインクルードしたことを確認しましたか? gmail はデフォルトでロードされていないようです。インスペクタに jQuery と入力して調べてみてください。また、span:contains が機能しない場合は、id などの他の方法で要素を見つけようとすることもできます。

于 2012-04-06T18:27:07.897 に答える
1

DOM を見ると、入力が既にそこにあることがわかります。あなたはそれを表示させることができるはずです:

jQuery('textarea[name=cc]').parent().parent().show() 

ただし、ページの設定方法が原因で、コンソールからこれをテストできないようです。彼らはiframeなどを使用しています。プラグインからアクセスできるのでしょうか?

を使用するのではなく、親要素に到達するためのより良い方法を見つけようとするかもしれませんparent().parent()が、これをテストすることはできません。

于 2012-04-06T20:16:44.023 に答える