プロが教えるわが家の防犯対策術!

まず複数のページに共通の項目を外部ファイルに置いて、更新、訂正作業を軽減したいと思っています。

共通の部分が8項目あるのですが、全て
document.write(".....")
で表現できるような簡単な内容です。(あいさつ文、リンクなど)ようするにただ表示するだけ・・・
最初は1つの項目につき、1つの外部ファイルを・・・と考えていたのですが、外部ファイルが多くなってきたのでひとつにまとめれないかなと・・・
8項目をページのいろいろな場所にレイアウトするつもりなので、関数を設定して呼び出せばいいのかな?とまでは考えたのですが、どうやって呼び出せばいいのかがわかりません。というのは、できれば<form>を使いたくないのです。

function kyotu1(){document.write("こんにちわ~");}
function kyotu2(){document.write("<a href='xxx.html'>home</a>")


こんな感じですが、何かアドバイスがあればよろしくお願い致します。

A 回答 (1件)

おそらく、質問文中にあるような、関数に処理をまとめておいて、その関数を呼び出すことで対処することは可能と思います。

それを外部ファイルに記述しても同様に扱えるのではないかと思いますよ。

内容を書き出す関数を外部ファイルにまとめた場合、それを組み込むのは1回で十分で、後の任意の場所に文字列等を書き出すのはその関数を呼び出せばよいと思います。
とりあえず、head内で

<script src="***.js" type="text/javascript"></script>

のように記述して外部ファイルを組み込んでおき、共通のソースを書き出すところではその外部ファイルに組み込まれた関数を呼び出せばよいと思います。

<script type="text/javascript"><!--
kyotu();
//--></script>

ただ、この場合は配列に共通項目をまとめて入れておいて、それを関数から読み出す形にする方がスマートにまとめられるかと思います。 この場合、関数を呼び出す時にどの配列から値を取り出して利用するかを指定するための引数を渡す必要がありますが、外部スクリプトはすっきりとした形で記述できるのではないかと思います。
一例として…

var msg= new Array();
msg["salue"]="こんにちは~";
msg["link"]="<a href='xxx.html'>link</a>";

function msgWrite(i){
document.open();
document.write(msg[i]);
document.close();
}

これを外部Javascriptファイルとして保存し、HTMLの側でこれをあらかじめ呼び出しておきます。
HTMLファイルの共通項目を書き出す部分では、

<script type="text/javascript"><!-- msgWrite("salue"); //--></script>

<script type="text/javascript"><!-- msgWrite("link"); //--></script>

以上のスクリプト要素を埋め込みます。
なお、配列のキーとしては、番号以外に文字列を使うことも可能で、配列を連想配列のように扱うことも可能です。 今回のケースでは、そこに書き出す内容との整合性を考えた文字列をキーとして扱うことで、ソースの管理をよりわかりやすい形で行うことができると思うので、このような形を提案してみました。
こういったソースではいかがでしょうか?

参考になれば幸いです。
    • good
    • 0

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