2

我正在尝试使用 Javascript 在 Facebook 中发送聊天消息,但不断收到错误消息。无论是TypeError: Object #<NodeList> has no method 'WHATEVERIPUTHERE'

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

o.WHATEVERIPUTHERE("Hello!")就是我想要做的(为文本区域设置一个值,然后发送它)

这是我尝试过的:

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

3 回答 3

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);
于 2013-08-22T05:10:41.553 回答
0

截至 2016 年 12 月 31 日,结构发生了变化......我还没有完全实现它,因为我被发送部分困住了。因为由于某种原因,当我输入动态值时,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;
}

}
于 2016-12-31T09:16:45.110 回答
-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);
于 2016-12-10T15:47:26.030 回答