Javascript条件搜索HTML中的字符串并返回True

Javascript条件搜索HTML中的字符串并返回True,javascript,Javascript,我正在使用一个名为Optimizely的登录页a/B测试工具。其中一种定位方法是通过访问者所在的URL+自定义Javascript条件。有一个框,我可以在其中输入Javascript条件。我需要条件来搜索HTML中的单词“checkout”,如果找到,则计算为true。任何帮助都将不胜感激。谢谢我使用了这篇文章中的treewalker代码: 打开源代码(在mac上按cmd+u或cmd+option+u),然后使用find键(在mac上按cmd+f),那么页面上是否有checkout这个词?它是

我正在使用一个名为Optimizely的登录页a/B测试工具。其中一种定位方法是通过访问者所在的URL+自定义Javascript条件。有一个框,我可以在其中输入Javascript条件。我需要条件来搜索HTML中的单词“checkout”,如果找到,则计算为true。任何帮助都将不胜感激。谢谢

我使用了这篇文章中的treewalker代码:


打开源代码(在mac上按cmd+u或cmd+option+u),然后使用find键(在mac上按cmd+f),那么页面上是否有checkout这个词?它是在任何元素“name”属性中还是在任何其他属性中?如果使用jQuery,可以执行
$('body').text().toLowerCase().indexOf('checkout')!=-1
。StackOverflow用于编程问题。如果你不是一个程序员,我建议你雇佣一个程序员或者开始通过教程学习。我会将
result[I]
转换为小写,以防字符串也是大写的。是的,我一开始是用toLowerCase()进行测试的,因为我的测试页面包含“Checkout”。很棒。@Blender:我个人喜欢你的jQuery解决方案。我试图提供一个纯javascript,以防它不可用,但你的非常优雅(就像jQuery经常做的那样)。jQuery非常适合这样的事情。我再也不能没有它了。。。
function checkoutIsPresent() {
  var result = [];
  var root = document.body;

  var node = root.childNodes[0];
  while (node != null) {
    if (node.nodeType == 3) { /* Fixed a bug here. Thanks @theazureshadow */
      result.push(node.nodeValue);
    }

    if (node.hasChildNodes()) {
      node = node.firstChild;
    }
    else {
      while (node.nextSibling == null && node != root) {
        node = node.parentNode;
      }
      node = node.nextSibling;
    }
  }

  if (!result) return false;
  for (var i = 0, len = result.length; i < len; i++) {
    if (result[i].indexOf('checkout') > -1) {
      return true;
    }
  }
  return false;
}
if(checkoutIsPresent()){
    // do something
}