Необходимо получить [это] из списка узлов, из разных мест расположения классов div - ("class1") [Current Node] / ("class2") [Current Node] - PullRequest
0 голосов
/ 19 октября 2018

Этот код добавляет точную отметку времени в сообщениях Facebook.Я добавил к нему фактическую информацию о сообщении, такую ​​как идентификатор сообщения и идентификатор fbUserID, или имя страницы, на которой размещен статус / содержимое.

Используется: https://greasyfork.org/scripts/12228/code/setMutationHandler.js

Это, в основном, проходит по всем узлам, а затем вставляет HTML для каждого узла.

// process the already loaded portion of the page if any
expandDates(document.querySelectorAll('abbr[data-utime]'));

// process the stuff added from now on
setMutationHandler(document, 'abbr[data-utime]', expandDates);
setMutationHandler(document, '._5pcq', expandPostIDs);
setMutationHandler(document, '._5pbx', statusRetrieval);
setMutationHandler(document, '.r_1zif-zub1', savePostButton);
setMutationHandler(document, '.r_1zif-zub1', ButtonEvents);


function expandPostIDs(nodes) {
for ( var i = 0; i < nodes.length; i++ )
{
    var element = nodes[i];
    if(element.innerHTML.includes('<br>') === false && element.className === '_5pcq')
      {
      element.insertAdjacentHTML('beforeend', '<br><span class="PostInfo">' +
      element.href.replace(/(&|\?)__xts__%5B0%5D=68.{0,250}/,'')
                  .replace('permalink.php?','permalink.php?').replace('/groups/','Group: ')
                  .replace('/permalink/','<br>Post ID: ').slice(24,100)
                  .replace('/','')) + element.insertAdjacentHTML('afterend', '</span>')
          }
     }
}



function ButtonEvents(nodes) {
for (var i = 0; i < nodes.length; i++)
     {
      var element = nodes[i];
           element.addEventListener("click", ClickButton, false);
             }
}

function ClickButton(nodes) {
var a = document.getElementsByClassName("r_1zif-zub1")[0].innerText; //Time and Date
var b = document.getElementsByClassName("_58jw")[0].innerText; // Status Content
alert(a + b);
}


function savePostButton(nodes) {
for ( var i = 0; i < nodes.length; i++ )
{
 var element = nodes[i]; element.getElementsByClassName("r_1zif-zub1");

if(element.className == 'r_1zif-zub1')
      {
      element.insertAdjacentHTML(
'beforeend',
'<input class="savePostButton" type="button"><br><span style="color:#09f!important;">Save Post</span></input>');
      }
   }
}

Мне просто нужен способ получить фактический элемент, на котором они находятся.Что-то вроде:

var a = document.getElementsByClassName("r_1zif-zub1")[Current Node].innerText;
var b = document.getElementsByClassName("_58jw")[Current Node].innerText; 

Мой полный код: https://pastebin.com/J4q5hXAX

...