簡體   English   中英

使用JavaScript引發Facebook.com上的事件

[英]Using javascript to evoke an event on Facebook.com

Facebook在每個組頁面的頂部都有一個TextArea,允許用戶向該組發布消息。我創建了一個chrome擴展程序,可以成功向該TextArea添加文本。

我的公司將使用此擴展名來減少特定任務的工作時間。

在消息包含鏈接的情況下,Facebook自動添加一個預覽框,其中包含已提交URL的元數據,當通過$()。value =“ my text”更改TextArea時,不會發生這種情況;

我一直試圖通過多種方式來喚起這種行為,並迫使它使用chrome控制台/擴展來為我的消息創建鏈接,唯一觸發它的事情實際上是在TextArea中鍵入(不使用代碼/ chrome擴展名)

使用console / chrome擴展名,可以使用以下方式更改TextArea的值:

document.getElementsByName("xhpc_message_text")[0].focus();
document.getElementsByName("xhpc_message_text")[0].value = "I love www.stackoverflow.com";
document.getElementsByName("xhpc_message")[0].value      = "I love www.stackoverflow.com";

textarea的

在模擬真實的按鍵調用鏈接預覽,甚至直接調用鏈接預覽以實現此行為方面的任何幫助,將不勝感激。

HTMLElement沒有keyup方法。 要以編程方式觸發事件,您必須使用EventTarget.dispatchEvent 由於所有HTMLElement都是EventTarget實例( EventTarget HTMLElement.prototype instanceof EventTarget ),因此您可以執行以下操作:

var keydown = new Event('keydown');
document.querySelector('[name=xhpc_message_text]').dispatchEvent(keydown);

另請注意,只有在鏈接后有更多字符時,Facebook才會預覽該鏈接。

var messageBox = document.querySelector('[name=xhpc_message_text]');
messageBox.dispatchEvent(new Event('focus'));
messageBox.value = 'www.stackoverflow.com ';
messageBox.dispatchEvent(new Event('keydown'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM