Hatena::Grouporera

もし高校野球の女子マネージャーがOpera Browserを使ったら

logo
 | 

2009-03-17

4U-tokeiを作った

05:03

美人時計を Opera のパネルに入れてみて思った。


iframe でやるのは微妙だよなー

でも Operaパネルじゃ UserJS が使えないからこれ以上やるのは難しい

いっそのこと美人時計の HTML をクロスドメインリクエストで取得しちゃえばいいんじゃね?

(-_- ;;) .oO( 「担当東條です!」 )

別に美人時計じゃなくても「美人」ならいいじゃん

4U - beauty image bookmarking があるじゃん

f:id:edvakf:20090318045051p:image:h400

↑というわけで。

これは明らかに変態やな。

data:text/html,
<script> 
window.onload = function() {

  var timeout = false;

  var throwJSONPRequest = function() {
    var s = document.createElement('script');
    s.src = 'http://access.appjet.net/?url=http://4u.straightline.jp/rss&callback=handleResponse&'+(new Date).getTime();
    document.body.appendChild(s);
    setTimeout(function() {
      if (timeout) return throwJSONPRequest()
    },
    10 * 1000);
    timeout = true;
  };

  window.handleResponse = function(res) {
    timeout = false;
    if (res.status != 200) {
      return setTimeout(throwJSONPRequest, 10 * 1000)
    };
    var text = res.responseText;
    var regexp = new RegExp('<media:content url="(.*?)" />', 'g');
    var ary = [],
    m = null;

    while (m = regexp.exec(text)) ary.push(m[1]);

    return showImages(ary);
  };

  var showImages = function(urls) {
    var img = document.getElementById('4uimg');
    if(!img){
      img = document.createElement('img');
      img.id = '4uimg';
      document.body.appendChild(img);
    }

    function show() {
      if (!urls.length) return throwJSONPRequest();
      img.src = urls.shift();
      img.alt = '';
      img.style.width = '100%';
      setTimeout(show, 1000 * 60);
    }

    return show();
  };

  throwJSONPRequest();
} 
</script>

備考として、クロスドメインリスエストがよく詰まる (タイムアウトになる) ため、パネルに入れてから数秒待たないと最初の画像が表示されないかもしれない。

page=2なんていう変数もあったんだ。後でちょっと改良しとこう。

トラックバック - http://orera.g.hatena.ne.jp/edvakf/20090317
 |