2013-08-22 82 views
2

我正嘗試在Facebook上使用Javascript發送聊天消息,但不斷收到錯誤消息。要麼是TypeError: Object #<NodeList> has no method 'WHATEVERIPUTHERE'使用JavaScript在Facebook上使用瀏覽器控制檯發送聊天消息

基本上o =聊天文本區域。

o.WHATEVERIPUTHERE("Hello!")是我想要做的(設置爲文本區的值,並將其發送)

這是我曾嘗試:

var o = document.getElementsByClassName("uiTextareaAutogrow _552m"); 
o.WHATEVERIPUTHERE("Hello!"); 
+3

如果下面幫你出答案,請務必給予好評,並選擇一個公認的答案。否則,你還有問題嗎?你自己解決了嗎? – onebree

回答

5

document.getElementsByClassName返回數組元素。在這種情況下,他們將與打開的聊天框具有相同的號碼。

我寫在純JavaScript:

var o = document.getElementsByClassName("uiTextareaAutogrow _552m"); 

// set the chat textbox 
var chatTextBox = o[0]; 

// set the message value 
chatTextBox.value = "Hello"; 

// create a keydown event  
var e = new Event("keydown"); 

// it has to simulate the Enter press (key code is 13) 
e.keyCode = 13; 

// trigger it 
chatTextBox.dispatchEvent(e); 
+0

@FastSnail呵呵,這還在工作嗎? :) –

+0

yes.i也認爲它已經過時了,但它很好地工作 –

+2

@FastSnail我很高興知道這在兩年的非反饋後幫助了某人。 :-D –

-1

真棒...它爲我工作。下面是我的代碼

var o = document.getElementsByClassName("uiTextareaNoResize uiTextareaAutogrow _1rv"); 

// set the chat textbox 
var chatTextBox = o[0]; 

// set the message value 
chatTextBox.value = "Hello"; 

// create a keydown event  
var e = new Event("keydown"); 

// it has to simulate the Enter press (key code is 13) 
e.keyCode = 13; 

// trigger it 
chatTextBox.dispatchEvent(e); 
0

截至31-12-2016的結構發生了變化......我是因爲我堅持的發送部分還沒有完全實現它。因爲某些原因,當我輸入動態值時,FB阻止我按Enter或返回..行爲很奇怪。

這裏是我的一段代碼[未完成]

//Open up all the chat window visible on the chat panel 
STEP 1: 

javascript:var inputs = document.getElementsByClassName('_55ln'); 
for(var i=0; i<inputs.length ; i++) { 
inputs[i].click(); 
break; //testing purpose 
} 


STEP 2: 

javascript:var item = document.getElementsByClassName('fbNubFlyout fbDockChatTabFlyout uiContextualLayerParent'); 

for(var k=0;k<item.length;k++){ 
var child = item[k].getElementsByClassName('_1p1t'); 
item[k].removeChild(child); 

var send = item[k].getElementsByClassName('_1mf _1mj'); 
console.log(send); 
for(var j=0;j<send.length; j++){ 
var attr = send[j].getAttribute('data-offset-key'); 
var new_content = '<span data-offset-key="'+attr+'"><span data-text="true">HI!! Testing</span></span>'; 
send[j].innerHTML=new_content; 
} 

} 
相關問題