2012-04-06 126 views
1

爲了顯示cc:adress的輸入字段,我試圖從Chrome擴展中自動點擊gmail中的「添加抄送」跨度。在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")); 
    } 

UPDATE:其實跨度是一個iframe內。

有人可以給我一個指針如何觸發這些跨度點擊?

有什麼方法可以觀察/記錄當我手動點擊鏈接時會觸發哪些事件?

UPDATE:感謝@veeTrain指點如何設置斷點在Chrome瀏覽器開發工具

+0

你想要做什麼?你是否想着重於'add cc:'輸入?因爲在這種情況下你可以做.focus()而不是.click()。 讓我知道這是否適合你,在這種情況下,我會張貼它作爲我的答案。 – Mosselman 2012-04-06 18:18:56

+0

@Mosselman我試圖打開/顯示cc地址的輸入字段,focus()似乎沒有辦法訣竅 – Cilvic 2012-04-06 18:23:32

+1

@Mosselman在使用Google Mail撰寫電子郵件時,沒有「CC」輸入框默認情況下,你必須點擊一個跨度(它的樣式看起來像一個超鏈接)與文本'添加CC'爲了使它出現。點擊他們想要自動化的範圍。 – 2012-04-06 18:23:36

回答

1

如果你看看DOM,你會看到輸入已經存在。你應該能夠得到它與顯示:

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

但是它好像我不能對此進行測試,從我的控制檯由於該頁面的安裝方式。他們使用iframe等。也許你可以從插件獲得它?

您也可以嘗試尋找更好的方式來獲得的父元素,而不是使用parent().parent(),我想,但我不能測試了這一點。

1

我不知道你將如何通過代碼點擊抄送;你的嘗試對我來說很好。

您可以使用Chrome的開發工具來觀看和了解有關發生事件的大量信息。您可以暫停,中斷,逐步觀看更多的變量並查看調用堆棧。

但是,您可能希望首先覆蓋腳本中的click事件,然後再打破該事件。

(未經測試)

$('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以查明。 此外,您可以嘗試通過其他方式找到您的元素,如id:如果span:contains似乎不適合您。

+0

非常感謝。 – Cilvic 2012-04-06 18:37:21

+0

沒問題;很高興你得到了你的答案 – veeTrain 2012-04-06 18:41:52

+0

我在問題中提到你,但我覺得@莫斯曼給出瞭解決問題的答案。再次感謝。 – Cilvic 2012-04-06 18:43:55