- ベストアンサー
半角スペースを含む文字列を変数にセット可能?
以下のような、画像を読み込む関数を定義します。 function changePhoto(OBJname, image) { document.images[OBJname].src=image; } これを onClick=changePhoto('Photo316','abc xyz.jpg') のように、引数に半角スペースを含む文字列で呼び出すと、エラーになってしまいます。 abc_xyz.jpgであれば問題ありません。 半角スペースは渡せないのでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>半角スペースは、そのまま半角スペースで表示されます。 うちの環境での実行結果、ファイルをドロップした場合 IE6、Opera8 file:// ~ /abc xyz.jpg FireFox2 file:// ~ /abc%20xyz.jpg webサーバから画像ファイルを開いた場合 IE6、Opera8、FireFox2 http:// ~ /abc%20xyz.jpg ローカルで実行している時は(file://~)そのままのブラウザもありますが、サーバ上にある時は(http://~)どのブラウザも%20に変換されました。 URLエスケープとか、URLエンコードといわれるもので、URLでは半角スペースはそのままでは使えない記号なので、エスケープする必要があるようです。 onClick="changePhoto('Photo316','abc%20xyz.jpg')" こう書くのが一番安全なのかもしれませんね。
その他の回答 (4)
- VCAT
- ベストアンサー率20% (16/79)
=================LOG===================== 回答者:VCAT 種類:アドバイス どんな人:専門家 自信:参考意見 回答日時: 06/12/28 15:58 渡せるかどうか以前にその書き方が気もち悪いですね. 上記に対する質問者のコメント ------------------------------------------------------ この回答へのお礼 「専門家」を自負するなら、専門家らしい回答・アドバイスをして頂きたいですね。 一般の方の方が親身に、真剣に回答して頂いております。 質問者には当然マナーは必要ですが、回答者にも最低限のマナーは必要です。どう思いますか?専門家さん ------------------------------------------------------ 【回答】 別に。この板で逆切れはめずらしい。 ま、お好きなようにファイル名をつけてがんばってください。規則など屁みたいなもんですか?あえて言いますが、非常に専門的な見地からのアドバイスをしたつもりです。勉強すればわかります。
お礼
あなたのこれまでの回答履歴をすべて拝見させて頂きました。 どの程度の専門家かよく理解できました。
- venzou
- ベストアンサー率71% (311/435)
onClick="changePhoto('Photo316','abc xyz.jpg')" 属性は""(or'')で括るのがルールです。 上記の場合だと動きました。(WindowsXP IE6,FireFox2,Opera8) onClick=changePhoto('Photo316','abc xyz.jpg') 空白だと途中で切られて、 onClick=changePhoto('Photo316','abc ここまでしか認識されないと思います。(たぶん(^^;) onClick=changePhoto('Photo316','abc_xyz.jpg') _の場合、繋がっているので、""を省略しても一応動きます。 (すべてのブラウザで動くかは分かりません。""を付ける事をお勧めします)
お礼
venzou様 回答ありがとうございます。 見よう見真似で記述していたので、基本を理解していませんでした。 ありがとうございました。
空白スペースのある画像を ローカル上にあるままで良いので見てるブラウザにそのまま放り込んでごらん。 パスが変に長いのは無視するとして目的の画像ファイル名のみの部分はどうなっているか、良く見てごらん。 そうすればなぜエラーになるかが理解できる筈だから。
お礼
教えられた通りのことをして、アドレスバーに表示されるファイル名をよーく見てみました。 半角スペースは、そのまま半角スペースで表示されます。何のおっしゃりたいのか、わかりませんでした。
- VCAT
- ベストアンサー率20% (16/79)
渡せるかどうか以前にその書き方が気もち悪いですね.
お礼
「専門家」を自負するなら、専門家らしい回答・アドバイスをして頂きたいですね。 一般の方の方が親身に、真剣に回答して頂いております。 質問者には当然マナーは必要ですが、回答者にも最低限のマナーは必要です。どう思いますか?専門家さん
お礼
venzou様 ご回答、アドバイスありがとうございます。 半角スペースを扱う際は注意が必要ということ、属性は必ず「”」で囲むというとこをよく理解しました。 また機会がありましたら、よろしくお願いします。