Ошибка 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.