« BlogTV by Technorati Japan on MXTV | メイン | Flash:UIコンポーネントプロジェクト メモ »
重要なお知らせ: このブログの更新は終了しました!詳しくはこちら "ブログ移転しました。" をご覧ください。
Flash:自分が張られているページのURLを取得
AD:ロリポップのドメインは選べる全85種類!!
_urlでSWFのおかれているURLのパスが取得できるのだけど、
自分が張られているHTMLページのURLって取得できない;
でもv8なら、なんの手助けなしにいけちゃう。
getURLでJSを宣言して、ExternalInterface.callで戻り値のゲット!
//getURLを用いてJSを宣言
getURL("javascript:getLocation=function(){return window.location.href;};void(0);");
//ExternalInterfaceを用いて宣言したFunctionを呼び出し戻り値を得る
var myBaseUrl = String(ExternalInterface.call("getLocation"));
//javascript alertを用いて結果を見てみる
ExternalInterface.call("alert",myBaseUrl )
上の例だと、myBaseUrl に正しく値が入ってこない。
他もそうなのかどうかわからないけどIEの場合はそう。
JSの宣言と、呼び出しが同時だとダメっぽく、setIntervalなどを用いて間隔をとって呼び出さなくちゃダメっぽい!
//getURLを用いてJSを宣言
getURL("javascript:getLocation=function(){return window.location.href;};void(0);");
var siid = setInterval(function(){clearInterval(siid);},1); // 1msで十分ぽい / 24fps でテスト
//ExternalInterfaceを用いて宣言したFunctionを呼び出し戻り値を得る
var myBaseUrl = String(ExternalInterface.call("getLocation"));
//javascript alertを用いて結果を見てみる
ExternalInterface.call("alert",myBaseUrl )
その他注意が必要なのは、
・ExternalInterfaceの戻り値が受け取れるようなソースで貼り付けられていること
これにつまづかないように
この手法つかえば、なんでもありになりそう。
投稿者 ekn : August 14, 2006 04:29 PM
トラックバック
このエントリーのトラックバックURL:
http://ekndesign.com/cgi/mt/mt-tb.cgi/291


