SWFObject の addVariable で渡す値は URL エンコードした方がよい


SWFObject の addVariable を使って何らかのパラメータを渡す際には、その値を URL エンコードした方がよい。
値に & などのスペシャルキャラクタを含むと正しく渡らない可能性があるからだ。

例えば、

so.addVariable("hoge", "http://example.com/?a=100&b=200");

このコードは、SWFObject によって、以下の param タグに変換される。

<param name="FlashVars" value="hoge=http://example.com/?a=100&b=200" />

FlashVars は、名前と値のペアの連結に & を使うため、Flash 内部では

hoge = http://example.com/?a=100;
b = 200;

と解釈されてしまう。
従って、値を escape() で URL エンコードする必要がある。

//JavaScript
so.addVariable("hoge", escape("http://example.com/?a=100&b=200"));
//ActionScript
this.hoge = unescape(this.hoge);
trace(this.hoge); //->http://example.com/?a=100&b=200
カテゴリー: Flash   パーマリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>