Flash:自分が張られているページのURLを取得
_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);
//ExternalInterfaceを用いて宣言したFunctionを呼び出し戻り値を得る
var myBaseUrl = String(ExternalInterface.call(”getLocation”));//javascript alertを用いて結果を見てみる
ExternalInterface.call(”alert”,myBaseUrl )
},1); // 1msで十分ぽい / 24fps でテスト
その他注意が必要なのは、
・ExternalInterfaceの戻り値が受け取れるようなソースで貼り付けられていること
これにつまづかないように
この手法つかえば、なんでもありになりそう。







コメントをどうぞ