小脚本上的JavaScript错误

时间:2013-04-19 09:07:07

标签: javascript greasemonkey

我正在尝试编写一个小的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);

1 个答案:

答案 0 :(得分:1)

它抱怨path的值不是有效的XPath选择器。从我所看到的,你传递的值foo3意味着标签<foo3> - 可能不是你想要的。请尝试使用//*[@id='foo3'],例如http://ejohn.org/blog/xpath-css-selectors/了解更多xpath示例。