DreamweaverMX2004のビヘイビアでマウスオーバー処理を使いたいために画像先読み機能をつけると、ヘッダにスクリプトが、また、bodyタグが
<body onLoad="MM_preloadImages('img/aaa.gif','img/bbb.gif')">
と、自動的に書き換えられます。
読み込む画像が多くなると、bodyタグの中身が長くなるし、多岐に渡るページで同じスクリプトを使用したいので
<body onLoad="Gazou()">
のようにして、JSファイルにまとめたいと思います。
JSファイルは「JS」というフォルダに「script.js」という名称で保存するとして、script.jsの中で画像のパスの書き方で困っています。
script.jsを基準にしたパスで書くのか、呼び出されるhtmlファイルを基準にパスを書くのか、です。
どちらなのでしょうか?
No.5ベストアンサー
- 回答日時:
>script.jsを基準にしたパスで書くのか、
>呼び出されるhtmlファイルを基準にパスを書くのか、です。
>どちらなのでしょうか?
呼び出されるhtmlファイルを基準にパスを書くのが正しいです。
というか、正しくは JavaScript自身が動く場所を基準にパスを書くという事で、
ほとんどの場合が HTML で読み込んだその場で動くからです。
稀に他の場所で動くように仕掛ける事がありますから、
知識としては動く場所が基準と知っておくべきで。
まぁ通常は HTML ファイルを基準と考えて問題ないですが。
で、ついでなのですが、
JavaScript という事はブラウザが読み込んでブラウザが解釈して動くので、
サーバにアップしなくてもパソコンに置いても動作します。
というか、サーバからパソコンなどに読み込まれて
少なくともメモリには展開されて動作しています。
(キャッシュに残る場合はそちらにも書き出されますが。)
なので、出来る限りパソコンなどローカルな環境で動作確認はしましょう。
#1の補足にある様な光ケーブル云々を気にするのは
サーバの問題だけにしましょう。
(権限問題や本当にサーバに対象がアップされているかとか、CGIの動作などなど・・・)
それから、#4の方が提示されている
>「/aaa/bbb/ccc.gif」
この方法はブラウザの解釈が異なるので避けるべきです。
フラウザによって、ルートから解釈したりカレントから解釈したりと(どちらでもないよくわからないブラウザもあり)
(CGIなど環境が特定されている場合に用いるのは良いのですが・・・)
汎用性を考え容易な方法は、
絶対アドレスで指定する事でしょう。
そうでなければ、
ファルダの深さを表す共通変数を用意して
どの深さから呼んでいるか明示するか、
自分のURLを解釈してフォルダの深度を求める処理を用意するかなど
手間を掛ける事です。
No.4
- 回答日時:
jsファイルといってもHTMLの中に埋め込まれることには変わりありません。
つまり「HTMLファイルから見たパス」になります。「呼び出されるhtmlファイル」ではなく「呼び出すHTMLファイル」が基準ですね。
ちなみに、他ディレクトリにある画像などを参照するとき、外部スクリプトファイル内にて相対パスで書くと、それを他位置のHTMLに埋め込んだときに使えなくなることがあるので、ルートからのパス http://www.xxx.com/aaa/bbb/ccc.gif なら「/aaa/bbb/ccc.gif」と書いておくことで、すべてのファイルから使えるようになります。あるいはjamslotさんのおっしゃるように絶対パスが無難かもしれません。
余計なことかもしれませんが、ttyp03さんのおっしゃるように、まずは自分で試すなり、質問の前に少しの努力はするようにしましょう。
No.3
- 回答日時:
htmlファイルを基準でよかったと思いますよ。
私もindex.html内にjsフォルダ内のjsファイルを埋め込んでます。同じ状況ですよね?
私はそれで問題なく動いておりますので!
それでも心配ならば、絶対パスで記述されてはどうでしょうか?これが多分一番確実ですよね~。
ご参考になれば幸いです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでJSONを取得する方法
-
JavascriptでのExcel起動について
-
ドメイン参加をしているPCからW...
-
ホームページのバグなのでしょ...
-
ページを一回だけリロードさせ...
-
Excel VBA にて JavaScript の...
-
VBAによる第3、4水準文字の判定...
-
jsでルートディレクトリより上...
-
初心者です。gulpでコンパイル...
-
VBScript から JavaScript を呼...
-
JavaScriptで ブラウザの閉じる...
-
if(1){...}とはどういうことで...
-
エクセル 半角英数6文字以上 ...
-
ハイフンだけ置換したい。
-
入力された文字を1文字ずつチ...
-
VBS作動中のブラウザのmsgboxに...
-
CreateFile、CloseHandleの繰り...
-
JavaScriptでショートカットキ...
-
jQuery ui Datepicker 明日以降...
-
Excel VBA カタカナ セル判定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
csvファイルを読み込み、該当項...
-
htmlのfileタグに自動で値を入...
-
JSでファイル数取得
-
ページを一回だけリロードさせ...
-
JavascriptでのExcel起動について
-
テキストファイルの更新日時を取得
-
javascriptでフォルダ内のファ...
-
jsファイルを閲覧者がダウンロ...
-
動的ファイルの最終更新日を取...
-
JavaScriptでiframeの高さを自...
-
contenteditableで編集した内容...
-
javascriptの効かないサーバー...
-
外部ファイルからの値の取得
-
Win版IllustratorCS3でJavascri...
-
JavaScript(ライブラリ)のキ...
-
ファイルパスの取得について
-
<input type="file">のイベント...
-
ファイル出力(ログ)
-
正規表現でファイル名の抽出
-
ローカルフォルダにあるPHPファ...
おすすめ情報