2013-01-08 104 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 ...