2017-06-29 60 views
0

我試圖瞭解如何創建前端頁面,尤其是左側的聯繫人列表(<div id="pane-side">)的WhatsApp Web。該聯繫人的姓名使用類"emojitext ellipsify",我試圖通過代碼來獲取所有聯繫人的姓名:瞭解如何開發「WhatsApp Web」前端頁面

var contatosTemp = document.getElementsByClassName('emojitext ellipsify'); 
var contatos = []; 
for (var i = 0; i < contatosTemp.length; i = i + 2) { contatos.push(contatosTemp[i].innerText); } 
contatos 

如果聯繫人列表的滾動是在頂部的contatos數爲19。但是如果我滾動列表,contatos的數量會增加,直到29。如果我最小化該窗口,則contatos的數量減少到15

恢復時,當用戶滾動聯繫人列表時,上述JavaScript捕獲的聯繫人列表數量會發生變化。

如果你想了解我在做什麼,打開的WhatsApp的Web,請至瀏覽器DevTools>控制檯和運行JavaScript的上方。

您將看到陣列contatos的大小:

然後滾動在屏幕的左側窗格中,再次執行JavaScript。它會顯示數組大小已更改。

我想獲取所有聯繫人的姓名,但JavaScript只能獲取其中的一部分。我怎樣才能做到這一點?

+0

代替屏幕抓取的,你有沒有考慮嘗試任何可用的WhatsApp的API? – Filburt

+0

Whatsapp提供了一些API?我以爲不是。 – Bynaryus

+0

WhatsApp自己顯然沒有 - 這就是爲什麼似乎有各種各樣的流氓([Yowsup](https://github.com/tgalal/yowsup)等)。 – Filburt

回答

0

使用此腳本,將帶給你所有的聯繫人

function contactList(){ 
    var user = Store.Chat.models; 
    var destiny = []; 

    user.forEach(function(obj){destiny.push(obj.__x_formattedTitle)}); 
    return destiny }