退出document.evaluate

时间:2010-12-11 23:03:33

标签: javascript xpath greasemonkey document.evaluate

我正在使用Greasemonkey。如果xpathExpression不存在,则整个脚本将停止。

document.evaluate(
    xpathExpression,
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

有没有办法阻止document.evaluate并继续让脚本运行?

错误:
“错误:表达式不是合法表达。”

3 个答案:

答案 0 :(得分:2)

当你无法预测错误是如何发生时,

try/catch应该被用作最后的手段。

请考虑这一点:

if (typeof xpathExpression !== "undefined" && xpathExpression !== "") {
    document.evaluate(
        xpathExpression,
        document,
        null,
        XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
        null);
}

答案 1 :(得分:1)

您可以将其包装在try-catch块中:

try {
  document.evaluate(...);
} catch (ex) {
  // something went wrong
}

答案 2 :(得分:0)

实例化变量xpathExpression然后你可以使用:

if (xpathExpression)
document.evaluate(...);

不需要try / catch块