ポートフォリオに戻る

アラートループ体験コーナー

1 ブラウザ

いま貴方が見ているウェブページを表示しているソフトウェア/アプリのことを 「インターネット・ブラウザ」と言い、単に「ブラウザ」などと言います。
たとえば「インターネット・エクスプローラー(Internet Explorer)」は マイクロソフト社が開発・提供するブラウザです。
世界的なシェアをもつブラウザとして、他に「グーグル・クローム(Google Chrome)」や 「ファイアフォックス(Firefox)」「サファリ(Safari)」などがあります。
ウェブページがHTMLという言語で書かれているのはみなさんご存知かもしれませんが、
ブラウザはHTMLで書かれたファイルを理解して表示するのです。

POINT ウェブページを見るときは、必ずブラウザを使っている。

2 JavaScript

JavaScript(ジャバ・スクリプト)とは、単純に言うとプログラミング言語です。
「Java(ジャバ)」というプログラミング言語とはまったく別物なので注意してください。
あと、読み方を知ってもらいたいのでカタカナ表記してますが、これもふつうはしません。

さて、JavaScriptは、書いたプログラムを即座に実行できる「スクリプト言語」です。
そして、上述したブラウザは、このJavaScriptの実行環境を最初から持っているのです。
余談ですが、スクリプト言語にはJavaScriptのほかに「Perl」「PHP」「Python」「Ruby」 があり、これらはウェブサービスの開発言語としても有名です。

POINT JavaScriptで書いたプログラムはブラウザで動かせる。

3 alert()

このJavaScriptには、ブラウザを操作するための命令があらかじめ用意されています。
その命令のひとつが「alert(アラート)」です。
alert命令は、主に、ウェブページを見ている人に対して、 なんらかの警告や注意、確認をうながすことを目的とした、小さなウィンドウを表示します。
そのウィンドウを閉じるまで、メインウィンドウの操作は行えません。

POINT alertはJavaScriptの命令のひとつで、小さなウィンドウを表示する。

たとえば、ウェブページ上の右クリックを防止するために、右クリックを検知した時には 「右クリック禁止!」というテキストを表示する、というプログラムが思いつきます。
次がそのプログラムの例です。

    1:        document.body.oncontextmenu =
    2:        function(){
    3:            alert('右クリック禁止です!');
    4:            return false;
    5:        }
    

1: 意訳すると「ウェブページ内容本文(document.body)に対する右クリック操作を、
  メニューが開く前のタイミングで検知せよ」という詠唱です。
2: 検知時に実行する命令は「function」という単位でひとまとめにして与えます。
3: 「右クリック禁止です!」というテキストの書かれたウィンドウを表示します。
4: 右クリックメニューを開くことを妨げています。

このプログラムと同じものが実はこのウェブページで動いています。
デスクトップPCやノートPCでご覧の方は、試しにマウスで右クリックしてみてください。
HTMLタグの一種である<script>タグを使うと、HTML文書内にJavaScriptの プログラムを書くことができるのです。
このウェブページのHTMLにも同じ方法でプログラムを埋め込んであって、このウェブページを開いた瞬間にプログラムが実行されるのです。
詳しい人は、このウェブページのソースコードを確認してみてください。

POINT JavaScriptのプログラムはHTMLの中で書くことができる。

4 ループ そしてアラートループ

プログラミングでは、決まった処理を繰り返し行うのに向いています。
例えば、2の1乗から数えて100番目までの累乗を計算するプログラムが考えられます。
このような繰り返し処理は「ループ(処理)」とも言います。
たとえばJavaScriptでは次のように書きます。

    1:    while(true){
    2:       alert('これはアラート命令です。');
    3:    }

    1:    for( ; ; ){
    2:        alert('これはアラート命令です。');
    3:    }
    

それぞれwhile文、for文と言います。繰り返す内容は{ }(カモメカッコ)内に書きます。
この例ではループの終了処理が一切ないので、alert命令を無限に繰り返すプログラムです。
もったいぶってもしょうがないので、これが「アラートループ」と言われているものです。
先程の右クリック禁止プログラムは、右クリック操作をするタイミングでalert命令をせよ、というものでしたが、 このプログラムでは終了条件のないループ文にalert命令を書いているので、 常に(ユーザが何もしなくても)無限にalert処理をせよ、という意味になります。
これにより、いくら閉じても小窓が開き、メインウィンドウの操作ができなくなるのです。

POINT アラートループは、終了条件のないループ文にアラート命令を書けば作れる。

休憩

アラートループは、言ってみれば止め方の分からない目覚まし時計で、迷惑なものです。
止め方が分からない人にとっては止める術がないのですから。
このページでは、迷惑な目覚まし時計の作り方を紹介しています。
かといって、このプログラムは機器に致命的な損害を与えるものでは到底ありえません。
これで警察に逮捕されることなんて現実にはありえないでしょう(笑)。
嫌いな人間に送りつけるなどして悪意を行使するのに役立つのであれば幸いです。

体験してみよう

それではアラートループを体験してみましょう。
止め方が分からない人は、PC・スマートフォンを強制終了して再起動してください。
強制終了は、機器によっては致命的な損傷が生じる可能性がありますが、
そのような不安がある場合は、申し訳ありませんが体験を諦めてください。

「リテラシーのない人のことなんか知ったことではない」という考え方もありそうですが、
運動できる人の運動できない人に対する品のないマウントと変わりがないと思います。

下の「アラートループ体験を開始する」ボタンをクリックすると始まります。