電子書籍の厳選無料作品が豊富!

javascript:R=0;x1=.1;y1=.05;x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5);void(0);

何か画像のあるサイトを表示させた状態で、ブラウザのアドレスバーに上のコードをコピーして、ペーストし、エンターを押すと、画面上に画像が回るのですが、これは、どういった仕組みで実行されているのでしょうか。

A 回答 (2件)

>なぜアドレスバーにコードを書くと実行されるかが



例えば A タグのリンク先にスクリプトを書くと実行されますが、これには納得してますか?これと同様の原理だとおもいますが・・・

例:
<A href="javascript:alert('スクリプト実行しました。');void(0);">実行</a>


通常ホームページの URL は http: から始めますよね。この部分が URL の種類(スキーム)を表します。

ftp: mailto: file: ・・・

URLには沢山の種類があり、ブラウザはそれぞれに応じた動作をします。

http: ならホームページを開く。
ftp: ならファイルをダウンロードする。
mailto: ならメーラーを起動する。

javascript: もその内の1つで(非公式らしい)、javascript: で始まる URL は JavaScript と解釈し、それに応じた動作(スクリプトの実行)をするのです。
    • good
    • 0
この回答へのお礼

>例えば A タグのリンク先にスクリプトを書くと実行されますが、
>これには納得してますか?これと同様の原理だとおもいますが・・・

なるほど、納得できました。
ありがとうございました^^

お礼日時:2007/01/20 11:17

おもしろいスクリプトですね。

この数行のコードに画像を動かす命令が書かれています。

仕組みとしては <A href="javascript:・・・"> と同様、ブラウザがリンク先を開こうとするとき、書かれているスクリプトを処理していると思います。


スクリプトの内容を簡単に解説すると、

>javascript:
JavaScriptであるという宣言

>R=0; ・・・ y5=200;
初期値の設定。

>DI=document.images; DIL=DI.length;
現在表示されている画像のリストと数を取得。

>function A(){
画像を動かす関数の定義開始

>for(i=0; i-DIL; i++) {
全ての画像を処理するためのループ開始

>DIS=DI[ i ].style; DIS.position='absolute';
画像のスタイルを変更

>DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5;
>DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5 }
画像の位置を計算、設定。(ループの終わり)

>R++}
パラメータの変更(関数の終わり)

>setInterval('A()',5);
先ほど定義した関数を定期的に呼び出すように設定。

>void(0);
ページを変更しない為の物。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

スクリプトの内容は分かったのですが、
なぜアドレスバーにコードを書くと実行されるかが
知りたかったです><

お礼日時:2007/01/18 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!