Changeset 18887 for lang/javascript

Show
Ignore:
Timestamp:
09/05/08 12:41:29 (3 months ago)
Author:
drry
Message:
  • fixed a regexp.
  • et cetera.
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/hatena.rss.manual.update.button.user.js

    r16693 r18887  
    1616  // Search for the "hatena-body" element 
    1717  var divs = document.getElementsByTagName("div"); 
    18   for (var i = 0; i < divs.length; i++) { 
     18  var i = 0; 
     19  for (var l = divs.length; i < l; i++) { 
    1920    if (divs[i].className == "hatena-body") break; 
    2021  } 
    21   if (i == divs.length) return; 
     22  if (i == divs.length || !/^hatena-rss-(.+)$/.test(divs[i].id)) return; 
    2223 
    23   if (divs[i].id.match(/hatena\-rss\-(.+)/)) { 
    24     var antenna = (RegExp.$1 == "antenna"); 
     24  var antenna = (RegExp.$1 == "antenna"); 
    2525 
    26     // Make a button icon 
    27     var img = document.createElement("img"); 
    28     img.src = "/images/podcasting_s.gif"; 
    29     img.alt = "\u66F4\u65B0"; img.width = 16; img.height = 12; 
    30     img.title = "\u3053\u306E\u30D5\u30A3\u30FC\u30C9\u3092\u624B\u52D5\u66F4\u65B0"; 
    31     img.style.cursor = "pointer"; img.style.paddingTop = "1px"; 
     26  // Make a button icon 
     27  var img = document.createElement("img"); 
     28  img.src = "/images/podcasting_s.gif"; 
     29  img.alt = "\u66F4\u65B0"; img.width = 16; img.height = 12; 
     30  img.title = "\u3053\u306E\u30D5\u30A3\u30FC\u30C9\u3092\u624B\u52D5\u66F4\u65B0"; 
     31  img.style.cursor = "pointer"; img.style.paddingTop = "1px"; 
    3232 
    33     //  
    34     var updateinfo = new Array(); 
    35     updateinfo.loading = 0; 
     33  //  
     34  var updateinfo = new Array(); 
     35  updateinfo.loading = 0; 
    3636 
    37     // Make an event handler 
    38     var update = function (evt) { 
    39       // Change the button icon 
    40       var img = evt.target; 
    41       if (img.src == "/images/loading.gif") return; 
    42       img.src = "/images/loading.gif"; img.width = 13; img.height = 13; 
    43       img.style.paddingTop = "0"; img.style.paddingRight = "3px"; 
     37  // Make an event handler 
     38  var update = function (evt) { 
     39    // Change the button icon 
     40    var img = evt.target; 
     41    if (img.src == "/images/loading.gif") return; 
     42    img.src = "/images/loading.gif"; img.width = 13; img.height = 13; 
     43    img.style.paddingTop = "0"; img.style.paddingRight = "3px"; 
    4444 
    45       // Get a feed identifier 
    46       if (img.nextSibling) { /* Antenna Mode */ 
    47         var fid = img.nextSibling.id.substring(8); 
    48       } else {               /* Normal or Simple */ 
    49         var fid = img.parentNode.parentNode.id.substring(8); 
    50       } 
     45    // Get a feed identifier 
     46    if (img.nextSibling) { /* Antenna Mode */ 
     47      var fid = img.nextSibling.id.substring(8); 
     48    } else {               /* Normal or Simple */ 
     49      var fid = img.parentNode.parentNode.id.substring(8); 
     50    } 
    5151 
    52       // Get a feed title 
    53       var links = img.parentNode.getElementsByTagName("a"); 
    54       for (var i = 0; i < links.length; i++) { 
    55         if (links[i].className == "entrylist-link" || links[i].className == "link") break; 
    56       } 
    57       var message = links[i].firstChild.nodeValue + " - "; 
    58       updateinfo.loading++; 
     52    // Get a feed title 
     53    var links = img.parentNode.getElementsByTagName("a"); 
     54    var i = 0; 
     55    for (var l = links.length; i < l; i++) { 
     56      if (links[i].className == "entrylist-link" || links[i].className == "link") break; 
     57    } 
     58    var message = links[i].firstChild.nodeValue + " - "; 
     59    updateinfo.loading++; 
    5960 
    60       // Set a call-back function 
    61       var req = new XMLHttpRequest(); 
    62       req.onreadystatechange = function() { 
    63         if (req.readyState == 4) { 
    64           if (req.status != 200) { 
    65             // Failure 
    66             img.src = "/images/error-l.gif"; 
    67             message += "\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F"; 
    68             alert(message); 
    69           } else { 
    70             img.src = "/images/podcasting_s.gif"; img.width = 16; img.height = 12; 
    71             img.style.paddingTop = "1px"; img.style.paddingRight = "0"; 
    72             if (req.responseText.indexOf('\u30D5\u30A3\u30FC\u30C9\u66F4\u65B0') != -1) { 
    73               // Succeed and Updated 
    74               message += req.responseText; 
    75               updateinfo.push(message); 
    76             } 
    77           } 
    78  
    79           updateinfo.loading--; 
    80           if (updateinfo.loading == 0 && updateinfo.length > 0) { 
    81             message = updateinfo.join("\n") + "\n"; 
    82             message += "\u30DA\u30FC\u30B8\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B\u003F"; 
    83             if (confirm(message)) location.href = location.pathname; 
    84             updateinfo = new Array(); 
    85             updateinfo.loading = 0; 
     61    // Set a call-back function 
     62    var req = new XMLHttpRequest(); 
     63    req.onreadystatechange = function() { 
     64      if (req.readyState == 4) { 
     65        if (req.status != 200) { 
     66          // Failure 
     67          img.src = "/images/error-l.gif"; 
     68          message += "\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F"; 
     69          alert(message); 
     70        } else { 
     71          img.src = "/images/podcasting_s.gif"; img.width = 16; img.height = 12; 
     72          img.style.paddingTop = "1px"; img.style.paddingRight = "0"; 
     73          if (req.responseText.indexOf('\u30D5\u30A3\u30FC\u30C9\u66F4\u65B0') != -1) { 
     74            // Succeed and Updated 
     75            message += req.responseText; 
     76            updateinfo.push(message); 
    8677          } 
    8778        } 
    88       }; 
    89       // Access to the server 
    90       req.open("GET", "/check?fid=" + fid, true); 
    91       req.send(null); 
     79 
     80        updateinfo.loading--; 
     81        if (updateinfo.loading == 0 && updateinfo.length > 0) { 
     82          message = updateinfo.join("\n") + "\n"; 
     83          message += "\u30DA\u30FC\u30B8\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B\u003F"; 
     84          if (confirm(message)) location.href = location.pathname; 
     85          updateinfo = new Array(); 
     86          updateinfo.loading = 0; 
     87        } 
     88      } 
    9289    }; 
     90    // Access to the server 
     91    req.open("GET", "/check?fid=" + fid, true); 
     92    req.send(null); 
     93  }; 
    9394 
    94     // Search for the feed list 
    95     if (antenna) { 
    96       var feedlist = document.getElementById("main-body").getElementsByTagName("ul")[0]; 
    97     } else { 
    98       var feedlist = document.getElementById("sidebar").getElementsByTagName("ul")[1]; 
    99     } 
     95  // Search for the feed list 
     96  if (antenna) { 
     97    var feedlist = document.getElementById("main-body").getElementsByTagName("ul")[0]; 
     98  } else { 
     99    var feedlist = document.getElementById("sidebar").getElementsByTagName("ul")[1]; 
     100  } 
    100101 
    101     // Append buttons to each feed items 
    102     var lis = feedlist.getElementsByTagName("li"); 
    103     for (var i = 0; i < lis.length; i++) { 
    104       if (lis[i].id.indexOf('keyword') == -1) { 
    105         var cimg = img.cloneNode(false); 
    106         cimg.addEventListener("click", update, false); 
    107         if (antenna) { 
    108           lis[i].insertBefore(cimg, lis[i].getElementsByTagName("div")[0]); 
    109         } else { 
    110           lis[i].getElementsByTagName("span")[0].appendChild(cimg); 
    111         } 
     102  // Append buttons to each feed items 
     103  var lis = feedlist.getElementsByTagName("li"); 
     104  for (var i = 0; i < lis.length; i++) { 
     105    if (lis[i].id.indexOf('keyword') == -1) { 
     106      var cimg = img.cloneNode(false); 
     107      cimg.addEventListener("click", update, false); 
     108      if (antenna) { 
     109        lis[i].insertBefore(cimg, lis[i].getElementsByTagName("div")[0]); 
     110      } else { 
     111        lis[i].getElementsByTagName("span")[0].appendChild(cimg); 
    112112      } 
    113113    }