Back

南河考研 Script 配給室2

複数のリンク先の窓を一度に開く方法"Java Script篇"


いちどに複数のリンク先を開きたい・・そんな贅沢な望みを叶えるのがここで紹介しているスクリプトです。下記のスクリプトを記述したジャンプ専用のhtmlファイルを用意し(ファイル名は任意)、別ページからこのファイルへリンクを設定しておきます。できればTARGET="_blank"指定で、別窓が開くようにしておきます。すると、リンクをクリックした途端に、用意したリンク先の数だけ別窓が一気に開きます。


●下記のスクリプトは、6つのページへのリンクを同時に別窓で開く仕様になっています。動作サンプルが必要な場合は、[本館]-[関連サイト]で使用しているJump to Arch.BBS -Group1-をお試しください。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="ja">
<HEAD>
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
<TITLE>任意ページ名</TITLE>
<!--複数ページ一発リンクver1.0// -->

<SCRIPT TYPE="text/javascript">
<!--
new_win=window.open("http://www.xxx.xx2/");
new_win=window.open("http://www.xxx.xx3/");
new_win=window.open("http://www.xxx.xx4/");
new_win=window.open("http://www.xxx.xx5/");
new_win=window.open("http://www.xxx.xx6/");
location.replace("http://www.xxx.xx1/");
// --> 
</SCRIPT>

</HEAD>
<BODY>
</BODY>
</HTML>

上のスクリプトをコピーして、任意のhtmlファイルにはりつけてください。スクリプトは<HEAD></HEAD>内に置いてください。各設定箇所を書き換えてご使用ください。

5行目までのスクリプトでは、2つめ〜6つめの窓で開くリンク先を記述しています。new_win=window.open("http://www.xxx.xxx/");の数だけブラウザの窓が新規オープンします。リンク先の数に応じてこの行数を調整してください。あまり多くの窓を新規に開かせようとすると、閲覧者のパソコンのシステムリソースが不足するおそれがありますし、閲覧者側の回線速度によっては使い物にならない場合もあるでしょう。適度な窓の数に抑えるのが賢明です。

6行目のスクリプトでは、このhtmlファイルを表示している窓をリロードさせて開くリンク先を記述しています。location.replaceだけではブラウザにこのhtmlファイルの履歴が残ってしまう場合は、ブラウザのバックボタンやリンク先のファイル中に記述されているかもしれないhistory.backなどを利用して閲覧者がこのファイルに帰ってくるおそれがあります。これは非常に困ります。なぜならば、このファイルを再度開くと、さらにブラウザの窓が倍に増えてしまうからです。「これはブラウザクラッシャーやんけっ!」と怒られてしまうかもしれません。この問題を未然に防ぎたいときは、location.replaceの次行に下記のパラメータを付け加えて、ブラウザのバックボタン無効化と履歴の消去を実行しましょう。

event.returnValue=false;
event.cancelBubble=true;

上記スクリプトを記述するファイルは、<BODY>内には何も記述しない「複数ページ一発リンク」専用のファイルとして利用します。このファイルへのリンクを行う場合は、TARGET="_blank"指定で別窓を開くと良いでしょう。さもなくば、リンクで飛んでいったが最後、閲覧者はあなたのサイトに戻れない状態になってしまいます。TARGET="_blank"指定をおこなえば、上記の event.returnValue=false; event.cancelBubble=true; によるブラウザのバックボタン無効化と履歴の消去は不要となります。


さて、賢明なかたはおわかりでしょうが、上記のスクリプトにあるwindow.openを用いると、簡単にイヤガラセのページが作れてしまいます。もっとも単純なのは、new_win=window.open("");をこれでもかっ・・というぐらい大量に書いておくというものですが、それではスマートではありません。たとえば、<SCRIPT TYPE="text/javascript">〜</SCRIPT>内の記述をすべて削除して、次の記述を書いておくと非常にまずいことになります。

for(;;){
window.open();
}

こう記述されたhtmlファイルをブラウザで開いてしまうと、内容の無い状態のブラウザ・ウインドウが無限に開き続けてしまうのです。つまり、リソースを食われすぎてシステムが不安定になるのです。すべての窓を根気強く強制終了をすればリブートは免れるかもしれませんが。ですので、window.openでこうした悪用をけっしてしないでください。上記のように複数リンクを開くなどの閲覧者に喜ばれる(?)有用な使い方をしましょう。



top of this page

BackIndex