1

为了显示 cc: 地址的输入字段,我试图从 chrome 扩展程序中自动单击 gmail 中的“添加抄送”范围。

跨度如下所示:

<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 内。

有人可以给我一个指针如何触发对这些跨度的点击吗?

有什么方法可以观察/记录手动单击链接时触发的事件?

更新:感谢@veeTrain 指出如何在 Chrome 开发工具中设置断点

4

2 回答 2

1

我不确定您将如何通过代码单击抄送;你的尝试对我来说看起来不错。

您可以使用 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 等。也许你可以从插件中获得它?

You might also try to find a better way to get at the parent element rather than using parent().parent(), I would, but I can't test this out.

于 2012-04-06T20:16:44.023 回答