我正在尝试编写一个小的Greasemonkey脚本,以便在页面出现时更改几个元素的值(通过DOM修改)。
我只是一个Greasemonkey用户,我没有JavaScript经验。我收到此错误:the expression is not a legal expression.
(line:result = ...)
我还想知道是否还有其他错误需要纠正。
这是我的剧本:
// ==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);
答案 0 :(得分:1)
它抱怨path
的值不是有效的XPath选择器。从我所看到的,你传递的值foo3
意味着标签<foo3>
- 可能不是你想要的。请尝试使用//*[@id='foo3']
,例如http://ejohn.org/blog/xpath-css-selectors/了解更多xpath示例。