C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

--/--/-- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
タグ:
トラックバック(-) | コメント(-) | このエントリーを含むはてなブックマーク
2006/08/20 02:34
HTMLからJavaScriptファイル(以降、jsファイル)を利用する場合、以下のように記述する。

Hoge.jsをインクルードする場合に、HTMLに記述するタグ<script type="text/javascript" src="Hoge.js"></script>

jsファイルが別のjsファイルを利用する場合は、通常、以下のように記述する。

Hoge.jsがFoo.jsを利用する場合に、HTMLに記述するタグ<script type="text/javascript" src="Foo.js"></script>
<script type="text/javascript" src="Hoge.js"></script>


これで問題はないのだが、どうせならjsファイル自身に、インクルードのためのコードを含めてしまいたい。だが、JavaScriptにそのような構文は用意されていない。そこでどうするかというと、以下のように、”別のjsファイルをインクルードするためのHTMLのタグ”を出力するコードをjsファイルに記述すればよい。

Hoge.jsがFoo.jsを利用する場合に、Hoge.jsに記述するコードdocument.write("<script type=\"text/javascript\" src=\"/WebSite1/Foo.js\"></script>");

この時、scriptタグのsrc属性に指定するパスを絶対パスにしておけば、Hoge.jsを利用するHTMLがHoge.jsと同じ階層のディレクトリにあろうが違う階層のディレクトリにあろうが関係なく、正常に動作する。

このHoge.jsを利用するHTMLでは、Hoge.jsのインクルードのみ行えばよい。


prototype.jsとかをこの方法でインクルードするとClass.create();とかしたときにうまくいかず、Class is not definedになっちゃいますね。

2007.08.12 21:02 URL | null #- [ 編集 ]


prototype.js は使ったことないので、そのような現象が発生するとは知りませんでした。
情報を提供して頂き、ありがとうございました!

2007.08.12 21:36 URL | よこけん #Ay6tTHf6 [ 編集 ]












トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/14-d5c2a47e

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。