Пользовательские скрипты Chrome - PullRequest
1 голос
/ 26 июня 2010

У меня проблема с UserScript в Chrome.Я уже давно использую версию этого расширения в Greasemonkey, но не могу понять, как разобрать NodeList в Chrome.Вот код, который есть в Greasemonkey (обратите внимание, что код на сайте действительно плохой, поэтому на него приходится большая часть моего кода:

for each (table in response) {
        pre = table.getElementsByTagName('pre');
        for each (tag in pre) {
            if (findNotes.test(tag.textContent)) {
                time = tag.parentNode.parentNode.parentNode.childNodes[0].childNodes[3].childNodes[3].textContent;
                emailexp = new RegExp("*Excluded for anonymity*","g");
                email = emailexp.exec(tag.textContent);
                oldstr = "Note From: " + email;
                newstr = '<p style="font-weight:bold">Note From: ' + email + "\t" + time + "</p>"
                noteStr += tag.textContent.replace(oldstr, newstr);
                noteStr += "\n";
                var nodeToDelete = tag.parentNode.parentNode.parentNode.parentNode;
                nodeToDelete.removeChild(nodeToDelete.childNodes[1]);
            }
        }
    }

Проблема, с которой я столкнулся, заключается в том, что Chrome делаетне соблюдайте функциональность «для каждого». Итак, я смог изменить первую строку на:

response.forEach(function(table, index, array) {

Но вложенная для каждого - это та часть, которую я не могу заставить работать.Переменная - это NodeList, для которого я не могу использовать метод object.forEach.

Есть ли у кого-нибудь какие-либо предложения о том, как я могу сделать эту работу?это облегчило бы мою работу ( headdesk ).

1 Ответ

3 голосов
/ 27 июня 2010

Вместо:

for each (tag in pre) {

Использование:

for (var i=pre.length, tag; i >= 0; i--) {
  tag=pre.item(i);
...