アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のような、画像を読み込む関数を定義します。
function changePhoto(OBJname, image)
{
document.images[OBJname].src=image;
}

これを
onClick=changePhoto('Photo316','abc xyz.jpg')
のように、引数に半角スペースを含む文字列で呼び出すと、エラーになってしまいます。
abc_xyz.jpgであれば問題ありません。
半角スペースは渡せないのでしょうか?
よろしくお願いします。

A 回答 (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')"

こう書くのが一番安全なのかもしれませんね。
    • good
    • 0
この回答へのお礼

venzou様 ご回答、アドバイスありがとうございます。

半角スペースを扱う際は注意が必要ということ、属性は必ず「”」で囲むというとこをよく理解しました。

また機会がありましたら、よろしくお願いします。

お礼日時:2006/12/31 18:57

=================LOG=====================


回答者:VCAT
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
06/12/28 15:58
渡せるかどうか以前にその書き方が気もち悪いですね.

上記に対する質問者のコメント
------------------------------------------------------
この回答へのお礼 「専門家」を自負するなら、専門家らしい回答・アドバイスをして頂きたいですね。
一般の方の方が親身に、真剣に回答して頂いております。
質問者には当然マナーは必要ですが、回答者にも最低限のマナーは必要です。どう思いますか?専門家さん
------------------------------------------------------
【回答】
別に。この板で逆切れはめずらしい。
ま、お好きなようにファイル名をつけてがんばってください。規則など屁みたいなもんですか?あえて言いますが、非常に専門的な見地からのアドバイスをしたつもりです。勉強すればわかります。
    • good
    • 0
この回答へのお礼

あなたのこれまでの回答履歴をすべて拝見させて頂きました。
どの程度の専門家かよく理解できました。

お礼日時:2006/12/31 23:37

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')

_の場合、繋がっているので、""を省略しても一応動きます。
(すべてのブラウザで動くかは分かりません。""を付ける事をお勧めします)
    • good
    • 0
この回答へのお礼

venzou様
回答ありがとうございます。

見よう見真似で記述していたので、基本を理解していませんでした。
ありがとうございました。

お礼日時:2006/12/28 22:52

空白スペースのある画像を


ローカル上にあるままで良いので見てるブラウザにそのまま放り込んでごらん。
パスが変に長いのは無視するとして目的の画像ファイル名のみの部分はどうなっているか、良く見てごらん。
そうすればなぜエラーになるかが理解できる筈だから。
    • good
    • 0
この回答へのお礼

教えられた通りのことをして、アドレスバーに表示されるファイル名をよーく見てみました。
半角スペースは、そのまま半角スペースで表示されます。何のおっしゃりたいのか、わかりませんでした。

お礼日時:2006/12/30 23:46

渡せるかどうか以前にその書き方が気もち悪いですね.

    • good
    • 0
この回答へのお礼

「専門家」を自負するなら、専門家らしい回答・アドバイスをして頂きたいですね。
一般の方の方が親身に、真剣に回答して頂いております。
質問者には当然マナーは必要ですが、回答者にも最低限のマナーは必要です。どう思いますか?専門家さん

お礼日時:2006/12/28 23:20

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