2013-01-08 60 views
0

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

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

<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

回答

0

该错误发生,因为y[i].innerHtml是不确定的。

为了避免这个问题,改变if声明如下:

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

,因为你是在为你if语句中使用String.search()不当你很可能遇到了这一点。如果搜索字符串不中目标字符串出现,.search()将返回-1,不为0(0的响应是指字符串的第一个字符出现在目标)。所以你可能是指:

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