• ベストアンサー

ランダムバナーについてです

仕事でHPの制作を担当しています。 全てのページに広告用のランダムバナーを設置しているのですが、現在はページがそれほど多くないので全てにJavaScriptでのランダムバナーを埋め込んでおります。 現在、サイトのリニューアルを予定しておりまして、製作の過程でかなりページが増えてしまうこととなりました。 そこで、ランダムバナーを更新する度に全てのページを書き換えるのは手間がかかるので、cgiかなにかで一括管理するような方法を紹介しているサイトがありましたら教えていただきたいです。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
noname#199778
noname#199778
回答No.3

ランダムバナーを記述しているスクリプト部が <script language="JavaScript"><!-- RndImg= new Array(); RndImg[0]="***0.gif"; RndImg[1]="***1.gif"; i=Math.round(Math.random()); document.open(); document.write("<img src="+RndImg[i]+">"); document.close(); // --></script> このような感じで記述されている場合、スクリプト要素の中身だけを切り出してテキストエディタにコピーし、それをjsファイルとして保存します。 それで、外部JavaScriptファイルは作成できます。 上記の例だと、外部JavaScriptファイルの中身は ----- RndImg= new Array(); RndImg[0]="***0.gif"; RndImg[1]="***1.gif"; i=Math.round(Math.random()); document.open(); document.write("<img src="+RndImg[i]+">"); document.close(); ----- こうなります。 タグ<script></script>やHTMLのコメントアウトは必要ありません。 このファイルを用意したら、後はJavaScriptファイルをスクリプトタグで呼び出すだけです。 ランダムバナーを表示させたい部分に、これまでのスクリプトタグとその中身に代えて、 <script language="JavaScript" src="外部JavaScriptファイルのURI"></script> と記述すれば、その部分に外部スクリプトファイルの中に記述された内容が書き出されているものとして処理が行われます。 document.writeでソースを吐き出すくらいであれば、処理内容は関数として定義しなくても問題なく動いてくれると思います。 なお、バナーとして画像などを読み出す場合で、表示させる画像もJavaScriptでランダムに指定している場合、外部JavaScriptファイルに記述するURIは絶対URIで記述しておいた方が良いでしょう。 外部JavaScriptファイルで相対URIを書き出すと、そのURIは外部JavaScriptファイルではなくそれを読み出したHTMLファイルから見た相対URIとして処理されます。 もし、このランダムバナーを表示するHTMLファイルが他のディレクトリにも設置されるとしたら、相対URIの指定が違うだけのほぼ同内容のjsファイルを別に用意しなければならなくなり、ちょっと非効率的だと思います。 外部JavaScriptファイルに含まれるURIを、絶対URIで指定しておけば、どのディレクトリにあるHTMLファイルからそれを取り込んでも、画像ファイルが見当たらなくなる問題はなくなると思いますので、だいぶ効率的に外部JavaScriptファイルを利用できると思いますよ。 参考になれば幸いです。

syoh_xxx
質問者

お礼

詳しい説明をいただきましてありがとうございました。 早速試してみましたが、問題なく動きました。 しかも、アドバイスまでいただいてしまいまして、本当にありがとうございす。 今までやってた作業はなんだったんだろう・・・(^^;

その他の回答 (2)

  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

<script src="hoge.js" language="javascript"></script> でhoge.jsを呼び出せます。 まずこれを<head>でも、ランダムバナーの直前でもに配置。 あとは、 <script language="javascript"> <!-- random(); // --> </script> みたいな形で hoge.js内に記述した function random(){ document.write('<img src="' + imgs[rnd] + '" />'); } を呼び出せば良いかと。 random()や中身は仮のものですから、 あなたが使用している部分がソレに変わると思っていただけると、イメージ頂けるかと。

syoh_xxx
質問者

お礼

回答ありがとうございました。 外部ファイルについての説明は、上の方がより詳しかったので、そちらを参考にさせていただきました。

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

JavaScriptでやっているのであれば、 外部ファイル呼び出しにしては? あとはその外部ファイルでランダムにするようしておけばよいかと。

syoh_xxx
質問者

お礼

質問の書き方が悪かったみたいです・・・。 外部ファイルの使う場合にどうしたらいいのかわからなかったんです。 改変コピペはできても新規に作ることができないので。 回答ありがとうございました。

関連するQ&A