Long click version

 avatar
user_0634698
javascript
a month ago
3.1 kB
1
Indexable
Never
const elements = document.querySelectorAll('[role="listitem"]');
for (let i = 0; i < elements.length; i++) {
    elements[i].addEventListener("click", function() {
        const objects = document.getElementsByClassName('_amk6')
        const childrenObject = []
        for (let i = 0; i < objects.length; i++) {
            childrenObject[i] = objects[i].children
        }
        const dataArray = [];
        
        for (let i = 0; i < childrenObject.length; i++) {
            // Jika pesan tidak memiliki span ariaLabel maka nama nya ambil dari username sebelumnya
            if (childrenObject[i][0].nodeName == "DIV") {
                // Jika message ini merupakan balasan, maka akses innerText yang lebih dalam agar tidak ada slash dan overlap
                if (childrenObject[i][0].children[0].children[0].children.length == 2) {
                    const newObject = {
                      name: childrenObject[i - 1][0].ariaLabel, // Ngambil ariaLabel yang berisi username
                      message: childrenObject[i][0].children[0].children[0].children[1].innerText // Ngambil isi text dalam div
                    };
                    if (newObject.message == '') {
                        newObject.message = 'Emoji/Image'
                    }
                    dataArray.push(newObject);
                } else {
                    const newObject = {
                      name: childrenObject[i - 1][0].ariaLabel, // Ngambil ariaLabel yang berisi username
                      message: childrenObject[i][0].children[0].children[0].innerText // Ngambil isi text dalam div
                    };
                    if (newObject.message == '') {
                        newObject.message = 'Emoji/Image'
                    }
                    dataArray.push(newObject);
                }
            } else {
                // Jika message ini merupakan balasan, maka akses innerText yang lebih dalam agar tidak ada slash dan overlap
                if (childrenObject[i][1].children[0].children[0].children.length == 2) {
                    const newObject = {
                      name: childrenObject[i][0].ariaLabel, // Ngambil ariaLabel yang berisi username
                      message: childrenObject[i][1].children[0].children[0].children[1].innerText // Ngambil isi text dalam div
                    };
                    if (newObject.message == '') {
                        newObject.message = 'Emoji/Image'
                    }
                    dataArray.push(newObject);
                } else {   
                    const newObject = {
                      name: childrenObject[i][0].ariaLabel, // Ngambil ariaLabel yang berisi username
                      message: childrenObject[i][1].children[0].children[0].innerText // Ngambil isi text dalam div
                    };
                    if (newObject.message == '') {
                        newObject.message = 'Emoji/Image'
                    }
                    dataArray.push(newObject);
                }
            }
        }
        
        console.log(dataArray);
    });
}
Leave a Comment