如果result.responseText.match不存在

时间:2012-01-23 11:41:33

标签: javascript greasemonkey

我不知道关于javascript的mutch但是我发现了这个我试图编辑的paintmonekey脚本。

var rating = document.links;

for (i = 0; i < rating.length; i++) { 
if (rating[i].href.indexOf("/shows/") != -1){

    GM_xmlhttpRequest({
        method: 'get',
        url: rating[i].href,
        onload: function (i) {return function(result) { 

                rate = result.responseText.match(/<span class="rating">(.*)<\/span>/);
                result = rate[1].substring(0,3);

                rat = document.createElement("div");
                rat.className = 'rate';
                rat.innerHTML = result;
                rating[i].parentNode.insertBefore(rat, rating[i].nextSibling);
        }}(i)
    });
}
}

所以它搜索页面上的所有链接,如果链接包含/ shows / it搜索值:

<span class="rating"><\span>

如果它发现它显示我创建的div中的结果。到目前为止一切顺利!

但其中一些链接有<span class="rating"><\span>

在这些链接上,我喜欢说“未找到”但我无法弄清楚如何:(

1 个答案:

答案 0 :(得分:1)

rate = result.responseText.match(/<span class="rating">(.*)<\/span>/);
if(rate){
  // Existing code.
  result = rate[1].substring(0,3);

  rat = document.createElement("div");
  rat.className = 'rate';
  rat.innerHTML = result;
  rating[i].parentNode.insertBefore(rat, rating[i].nextSibling);
}else{
  // Your new "not found" code.
  // Something like this, depending upon what you want to do:

  rat = document.createElement("div");
  rat.className = 'rate-not-found';
  rat.innerHTML = "Rate not found.";
  rating[i].parentNode.insertBefore(rat, rating[i].nextSibling);
}