Ошибка JavaScript на небольшом скрипте

Я пытаюсь написать небольшой скрипт Greasemonkey, чтобы изменить значение нескольких элементов, когда они появляются на странице (через модификацию DOM).

Я просто пользователь Greasemonkey, и у меня нет опыта работы с JavaScript. Я получаю эту ошибку: the expression is not a legal expression. (строка: результат =...)

Я также хотел бы знать, есть ли еще ошибки, которые мне нужно исправить.

Вот мой сценарий:

// ==UserScript==
// @name        myscript
// @namespace   http://www.google.com
// @include     http://mysite/
// @version     1
// @grant       GM_addStyle
// ==/UserScript==

function waitForKeyElements (selectorTxt, actionFunction) {
    if (getElementByXPath(selectorTxt) == null) {
       var timeControl = setInterval (function () {
                    waitForKeyElements (selectorTxt, actionFunction);
                },
                300
            );
    } else {
        clearInterval (timeControl);
        actionFunction();
    }
}

var getElementByXPath = function (path) {
  result = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  return result.singleNodeValue;
};

function myFunc (jNode) {
    getElementById("foo1").setValue("foo2");
}

waitForKeyElements ("foo3", myFunc);

1 ответ

Жалуется, что ценность path не является действительным селектором XPath. Из того, что я вижу, вы передаете значение foo3 что означает тег <foo3> - вероятно, не то, что вы хотите. Пытаться //*[@id='foo3'] вместо этого см., например, http://ejohn.org/blog/xpath-css-selectors/ для получения дополнительных примеров xpath.

Другие вопросы по тегам