[英]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";
在模擬真實的按鍵調用鏈接預覽,甚至直接調用鏈接預覽以實現此行為方面的任何幫助,將不勝感激。
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.