【问题标题】:Javascript: how to check if a text exists in a web pageJavascript:如何检查网页中是否存在文本
【发布时间】:2013-05-14 18:16:40
【问题描述】:

假设字符串“成功完成”显示在网页的某处,有没有办法知道这个字符串是否仅使用 javascript 存在? 谢谢。

【问题讨论】:

  • 不知道你在问什么,或者你尝试了什么......
  • 是的,但它可能不是您尝试做的任何事情的最佳解决方案。解释您的全部问题以及您迄今为止为解决该问题所做的尝试可能会更有用。
  • 本网站的目的是帮助您修复您编写的代码。第一部分是您需要编写代码。遇见我们有办法。

标签: javascript


【解决方案1】:

更多细节会有所帮助。可能有更好的方法。但鉴于您提供的信息,这是最好的:

if (
  (
    document.documentElement.textContent || document.documentElement.innerText
  ).indexOf('Done successfuly') > -1
) {
  // Do something...
}

如果您知道 ID 或类名,或者可以以其他方式选择直接包含文本的元素(例如 h1#someHeading span ...),那么您可能应该这样做,因为它会更高效且通常更简洁。

编辑 值得注意的是:这种方法也会在 SCRIPT 和 STYLE 标记中提取文本,这可能不是您想要的。 textContentinnerText 在浏览器中也有各种怪癖。 See this for more info

【讨论】:

    【解决方案2】:

    试试 .search() 像这样的:

    document.body.innerHTML.search("Done successfully!");
    

    或者用textContent代替innerHTML

    【讨论】:

    • 虽然这不是最有效的,但肯定是最有效的
    【解决方案3】:

    最简单的方法是使用 jquery 的 contains 选择器:

    if($("*:contains('Hello World')").length > 0)
        console.log('yeah baby');
    

    这种方式还可以为您提供文本的容器元素。

    【讨论】:

    • FWIW,这个特定的选择器将使用 Sizzle(因为它不是本机支持的选择器)并将选择页面上的每个元素,然后将循环检查 每个 元素为文本。这并不完全……高效。
    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 2010-09-16
    • 2019-09-28
    相关资源
    最近更新 更多