使用自定义代码修改Google自定义搜索结果

时间:2013-01-08 19:12:40

标签: javascript google-search

我的网站上安装了Google自定义搜索引擎。我想修改搜索结果。我知道它可能会伤害ToS。

所以,首先,我想从每个搜索结果中删除一些字符串。这是我之前写的函数:

<script type="text/javascript">
setInterval("pakeisti()",100)
function pakeisti()
  {
    elem = document.getElementById("searchas");
    y = elem.getElementsByTagName("div");
    for (i=0; i< y.length; i++)
     {
          str = y[i].className;
      if (str.search("gs-title") != 0 ) {
        var newHTML = y[i].innerHtml;
        newHTML = newHTML.replace('STRING - ',' k');
        newHTML = newHTML.replace('<a','<p');
        newHTML = newHTML.replace('</a>','</p>');
        y[i].innerHtml = newHTML; }
     }
  }
</script>

此前此脚本有效,但现在它给了我错误: Uncaught TypeError: Cannot call method 'replace' of undefined

1 个答案:

答案 0 :(得分:0)

发生错误是因为y[i].innerHtml未定义。

要避免此问题,请将if语句更改为:

if (str.search("gs-title") != 0 && y[i].innerHtml != null) {

您可能遇到此问题,因为您在String.search()声明中错误地使用了if。如果搜索字符串未出现在目标字符串中,.search()将返回-1,而不是0.(响应为0表示字符串出现在目标中的第一个字符处。)所以你可能的意思是:

if (str.search("gs-title") != -1 ...