エントリー名 :

JavaScriptとiframeで、Googleイメージ検索の画像をランダムに表示する方法

JavaScriptとiframeで、Googleイメージ検索の画像をランダムに表示する方法

りょーちの駄文と書評:Google Random Image を試してみた の記事を読んで、僕もGoogle Random Imageを試してみました。 JavaScript+iframeで、Googleイメージ検索の検索結果を切り替えて、表示する方法です。 Firefoxでも動く(はずの)サンプルを、「JavaScriptでGoogleイメージ検索の画像をランダムに表示する方法」に設置しました。10秒おきに画像が切り替わります。

オリジナルのGoogle Random Image

google hack from douwe osinga にオリジナルのソースと説明があります。 実際に設置してみたJavaScriptのコードサンプル例(IEでないと動かないと思います)

walkHtml()でページの文章を取得し、 boxfill()で単語ごとに切り分けてloadword()を一定時間ごとに呼び出しているようです。 loadword()で、Googleから画像を呼び出して表示しています。 id「searchLabel」のspanに検索キーワード、id「imagebox」のインラインフレーム(iframe)に画像を出しています。

JavaScriptで、


imagebox.document.body.innerHTML='<iframe width=1000 height=1000 
src="http://images.google.com/images?&q='+escape(searchfor)+'"></iframe>';
imagebox.scrollTo(50,200);

と、Googleの検索結果を取得しつつ、画面をスクロールして、表示部分のインラインフレーム(iframe)を、


<iframe id="imagebox" width="150" height="130"  vspace="0" hspace="0" frameborder="0" scrolling="no">></iframe>

とする事で、一部分を切り出す仕組みです。

残念ながら、Firefoxでは、動きませんでした。replaceNode~や、imagebox~のあたりが、どうも良くないみたいです。

Firefoxでも(多分動く)、Googleイメージの画像ランダム表示

元々のGoogle Random Imageは、2(javascriptをHTMLに直に書けば1)つのファイルで動くのですが、 僕が書いたのだと、3(or 2)つのファイルで動きます。りょーちさんのソースを参考に、ランダムに単語を指定して表示する仕組みです。

表示用のページ(index.html)Googleイメージ検索を呼び出すページ(gri.html)gri.htmlから呼び出すJavaScript(gri.js) の三つです。

JavaScript(gri.js)をgri.htmlで呼び出し、Googleの検索結果画面を取得しています。


document.getElementById("imagebox").src=baseurl+encodeURI(searchfor);
document.getElementById("searchlabel").innerHTML=searchfor;
window.scrollTo(20,190);

の部分が、オリジナルと対応している所です。

表示用(index.html)と、呼び出し(gri.html)にある インラインフレーム(iframe)それぞれのサイズで表示を調節しています。

直接index.htmlからGoogleの画面を呼び出したものを、スクロールする事がうまく出来なかったので、 仕方なく、iframeで呼び出したgri.htmlをgri.jsでスクロールしています。 (画面の表示位置を変えるためだけに、1ファイル余計に使っている!しかも、ブラウザによっては、うまくスクロールしてくれない!)

(誰か改良してくれないかな。scrollTo()を、どうやったらうまくインラインフレームに適用できるのか、よくわからない)。

iframe(インラインフレーム)とJavaScript

iframe(インラインフレーム)内の情報を引っ張ってこれないかなと思って検索しました。メモ。

なんだか、難しそうだ…。 「document.getElementById('フレームのID').contentDocument」というのは、初めて知りました。 こんなのがあるなんて!


JavaScriptとiframeで、Googleイメージ検索の画像をランダムに表示する方法の前後の記事

カテゴリー [ javascript ] [ メモ・覚え書き ]



アマゾン(Amazon.co.jp) JavaScript

Learning Perl

1. 洋書 Learning Perl

[2008-07)]五段階評価4.5 初めて?のPerl Perlの入門書という位置づけですが、他の方も書いているように、プログラム自体が初めてで全くゼロの状態からこの本を読んでPerlをマスターするのは不可能だと思...

Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby)

2. 洋書 Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby)

[2009-04)]作者:Dave Thomas 。レーベル:Pragmatic Bookshelf 。製造:Pragmatic Bookshelf 。出版:Pragmatic Bookshelf 。発売:Pragmatic Bookshelf。関連:Agile Web Development with Rails (Pragmatic Programmers)

High Performance JavaScript (Build Faster Web Application Interfaces)

3. 洋書 High Performance JavaScript (Build Faster Web Application Interfaces)

[2010-03-15)]作者:Nicholas C. Zakas 。レーベル:Oreilly & Associates Inc 。製造:Oreilly & Associates Inc 。出版:Oreilly & Associates Inc 。発売:Oreilly & Associates Inc。関連:Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

IMAGE STYLER1.0J  (Mac版)

4. ソフトウェア IMAGE STYLER1.0J (Mac版)

[1999-01-14]ブランド:アドビシステムズ 。レーベル:アドビシステムズ 。製造:アドビシステムズ 。出版:アドビシステムズ 。発売:アドビシステムズ。プラットフォーム:PowerMac。

VRCreator Personal Edition Ver.2.0J 発売記念価格版

5. ソフトウェア VRCreator Personal Edition Ver.2.0J 発売記念価格版

[1998-02-25]ブランド:エクス・ツールス 。レーベル:エクス・ツールス 。製造:エクス・ツールス 。出版:エクス・ツールス 。発売:エクス・ツールス。プラットフォーム:Windows。

IMAGE STYLER1.0J  (Win版)

6. ソフトウェア IMAGE STYLER1.0J (Win版)

[1999-01-14]ブランド:アドビシステムズ 。レーベル:アドビシステムズ 。製造:アドビシステムズ 。出版:アドビシステムズ 。発売:アドビシステムズ。プラットフォーム:Windows 98。

日経ソフトウエア 2010年 09月号 [雑誌]

7. 洋書 日経ソフトウエア 2010年 09月号 [雑誌]

[2010-07-24]五段階評価5.0 初歩からの組み込みプログラミング 今回は第2回です。 秋月の「H83069Fネット対応マイコンLANボード」を使うとのこと。 単純過ぎるボードでは何か動いても面白くなかったりしますが、 これは...

2

「JavaScriptとiframeで、Googleイメージ検索の画像をランダムに表示する方法」へのコメント

こんにちは。りょーちと申します。 記事の方、拝見いたしました。 Firefoxでも動きますねー。素晴らしいです。 文字コードの変換部分がないので、ソースがかなりすっきりしていて素晴らしいです! この方法、是非是非、採択させていただければと思います。 今後ともよろしくお願いいたします。

返事が遅くなって申し訳ありません。こちらこそ、よろしくお願いいたします!


コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)



このエントリーのトラックバックURL:

アーカイブ

トラックバック

広告

あわせて読みたい

あわせて読みたい