退出文档.evaluate

发布于 2024-10-07 08:18:54 字数 307 浏览 2 评论 0原文

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

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

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

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

I'm using using Greasemonkey. If the xpathExpression doesn't exist, the whole script will stop.

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

Is there a way to stop that document.evaluate and continue to let the script run?

the error:
"Error: The expression is not a legal expression."

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

峩卟喜欢 2024-10-14 08:18:54

当您无法预测错误如何发生时,try/catch 确实应该用作最后的手段。

请考虑这个:

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

try/catch should really be used as a last resort when you cannot predict how an error can occur.

consider this instead:

if (typeof xpathExpression !== "undefined" && xpathExpression !== "") {
    document.evaluate(
        xpathExpression,
        document,
        null,
        XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
        null);
}
夏了南城 2024-10-14 08:18:54

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

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

You could wrap it in a try-catch block:

try {
  document.evaluate(...);
} catch (ex) {
  // something went wrong
}
固执像三岁 2024-10-14 08:18:54

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

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

不需要 try/catch 块

instantiate the variable xpathExpression and then you may use:

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

no need of try/catch block

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文