石(掘る猫の)Blog

一割の情報、九割の水増し

目次

Blog 利用状況

ニュース

Twitter ID -> maincat

書庫

にこにこ検索をいじくってみた

にこにこランキングをいじくってみた、に続いて検索版を作りました。

基本は同じですが、何番目か分かるようインデックスを追加してみました。

#にこにこ動画にログインしていないと機能しません。IEでしか機能しません。IE6.0でしか確認していません。

#インターネットオプション->セキュリティ->レベルのカスタマイズ->その他->ドメイン間でのデータソースのアクセス、を無効以外にしないと機能しません。


動作画面

image

ソースコード

 <html>
  <head>
   <meta http-equiv="MSThemeCompatible" content="yes">
   <script type="text/javascript">
    var http, index, count = 3, urls = [];
    
    var onLoaded = function( response ) {
     var div = document.createElement( "div" );
     div.innerHTML = response.responseText;
     var tables = div.getElementsByTagName( "table" );
     var table;
     for( var i = 0; i < tables.length; i++ ) {
      if( tables[i].summary == "一覧" ) {
       table = tables[i];
       break;
      }
     }
     if( !table ) { return; }
     
     var links = table.getElementsByTagName( "a" );
     for( var i = 0; i < links.length; i++ ) {
      var block = document.createElement( "span" );
      block.style.cssText = "position:relative;";
      
      links[i].target = "_blank";
      
      var tag = document.createElement( "span" );
      tag.appendChild( document.createTextNode( ++index ) );
      tag.style.cssText = "position:absolute; font:bold large; left:5px; top:5px; \
                           cursor:pointer; filter:glow( color = #ffffff, strength = 5 )";
      tag.onmouseover = function() { this.style.color = "red"; }
      tag.onmouseout = function() { this.style.color = ""; }
      
      block.appendChild( tag );
      block.appendChild( links[i] );
      target.appendChild( block );
     }
     request();
    }
    
    var request = function() {
     var url = urls.shift();
     if( !url ) { return; }
     http = http || new ActiveXObject( "Msxml2.XMLHTTP" );
     http.open( "GET", url, false );
     http.onreadystatechange = function() {
      if( /*http.status  == 200 &&*/ http.readyState == 4 ) {
       onLoaded( http );
      }
     }
     http.send();
    }
    
    var search = function( keyword, options ) {
     target.innerHTML = "";
     index = 0;
     var baseUrl = "http://www.nicovideo.jp/search/" + encodeURI( keyword ) + "?" + options;
     while( urls.length ) { urls.shift(); }
     for( var i = 1; i <= count; i++ ) {
      urls.push( baseUrl + "&page=" + i );
     }
     request();
    }
   </script>
  </head>
  <body>
   <form style="margin:0px;" onsubmit="search(this.firstChild.value,typeselect.options[typeselect.selectedIndex].value);return false;">
    <input value="初音ミク" />
    <select id="typeselect">
     <option value="">投稿日時が新しい</option>
     <option value="order=a">投稿日時が古い</option>
     <option value="sort=v" selected>再生が多い</option>
     <option value="sort=v&order=a">再生が少ない</option>
     <option value="sort=n">コメントが新しい</option>
     <option value="sort=n&order=a">コメントが古い</option>
     <option value="sort=r">コメントが多い</option>
     <option value="sort=r&order=a">コメントが少ない</option>
    </select>
    <input type="submit" value="GO" />
   </form>
   <div id="target" style="border:3px double green; width:700px; height:500px; overflow-y:scroll; padding:2px;"></div>
  </body>
 </html>

#今度こそSyntaxHighlighterですよぅ(>w<)b

#@import url("");が使えなかったのでとりあえず<link href="" type=text/css rel=stylesheet>で(・x・どしてだろー

#詳説はまた今度!

投稿日時 : 2008年6月19日 20:37

コメントを追加

# re: にこにこ検索をいじくってみた 2008/06/20 2:25 ma2

5番と12番を踏んだ跡があるような気がするのですがw

# re: にこにこ検索をいじくってみた 2008/06/20 11:27 Hirotow

JSONP(jsr_class.js)ってのがあって、これを使うと自動的に制限を回避してくれます。

# re: にこにこ検索をいじくってみた 2008/06/21 4:32 石掘る猫

>ma2さん
ほあΣ( ̄□ ̄|||)よりによってそこっ。
下の方にある
    _  ∩
  ( ゚∀゚)彡
  (  ⊂彡
   |   | 
   し ⌒J
に気をとられて気づかなかったっ><。
動くかどうか確認するために、画像を
見もせずクリックしただけですからね!<弁護
そこに表示されてるの全部見てるし…<台無し

>Hirotowさん
おぉ、なんだかよさそうです。PC修理に
時間を食われてしまったので、起きたら
早速試してみます><ありがとうございます。

# re: にこにこ検索をいじくってみた 2008/06/22 23:07 石掘る猫

JSONPがんばってみましたけどだめでしたー(TДT)。
グーグルとかだと動くところまでいったのですけど、
肝心のニコニコ動画だと文字化けがーがー。

IE7にUpしたら以前のコード動かなくなりましたし、
引き続き挑戦してみます。

ヴァー、このネタでエントリーあげたかった(。ω。

# JSONPに挑戦してみた 挫折編 2008/06/23 22:24 石掘る猫のBlog

JSONPに挑戦してみた 挫折編

タイトル
名前
URL
コメント