動的iframeが解決してきた
dojoというjsライブラリから動的iframeのコードを見てまねしてやったところ、Firefoxで狙ったとおりの動作が得られた。
dojoはiframeを使ったxdomain通信ライブラリなどのhack的な拡張が特徴らしいので、今回参考にしてみようと思いました。
ソースコードは以下で見れます。
iframeの生成
http://trac.dojotoolkit.org/browser/branches/1.5/dojo/io/iframe.js
iframeの生成でも使われているブラウザの判定部分
http://trac.dojotoolkit.org/browser/branches/1.5/dojo/_base/query.js
IE、webkit、firefox、operaでそれぞれ処理を変えているのが分かります。
ただいまはfirefoxで、iGoogle内での起動、iGoogle外での起動、OpensocialサポートのあるiGoogle外での起動で狙ったとおりの動作が得られました。
引き続き、他のブラウザでテストして動的iframeについてまとめていきたいと思います。
■IE6・8
○iGoogle外での起動
×iGoogle内での起動
×OpensocialサポートのあるiGoogle外での起動(ie6:srcはセットされているのにロードされていない)
IE8はpopupブロックにもあったのでactionscriptもみなおさなくちゃ。
■Chrome(Iron5.0)
○iGoogle外での起動
○iGoogle内での起動
○OpensocialサポートのあるiGoogle外での起動
ただし、リロードの部分を以下のように修正した。
それともSafariとChromeのjsエンジンの違いか。分岐が必要。
■Safari4.0と3.5(Windows版)
○iGoogle外での起動
○iGoogle内での起動
○OpensocialサポートのあるiGoogle外での起動
上のChrome(Iron5.0)用の変更のまま動作。
popupが新しいWindowになったのでactionscriptの見直しが必要。
■Opera
○iGoogle外での起動
×iGoogle内での起動
×OpensocialサポートのあるiGoogle外での起動(srcはセットされているのにロードされていない。)
またdojoのコメントにもそれっぽいことがあったので、srcのセットはonloadイベント内で行うようにした。
dojoはiframeを使ったxdomain通信ライブラリなどのhack的な拡張が特徴らしいので、今回参考にしてみようと思いました。
ソースコードは以下で見れます。
iframeの生成
http://trac.dojotoolkit.org/browser/branches/1.5/dojo/io/iframe.js
iframeの生成でも使われているブラウザの判定部分
http://trac.dojotoolkit.org/browser/branches/1.5/dojo/_base/query.js
IE、webkit、firefox、operaでそれぞれ処理を変えているのが分かります。
ただいまはfirefoxで、iGoogle内での起動、iGoogle外での起動、OpensocialサポートのあるiGoogle外での起動で狙ったとおりの動作が得られました。
引き続き、他のブラウザでテストして動的iframeについてまとめていきたいと思います。
■IE6・8
○iGoogle外での起動
×iGoogle内での起動
×OpensocialサポートのあるiGoogle外での起動(ie6:srcはセットされているのにロードされていない)
IE8はpopupブロックにもあったのでactionscriptもみなおさなくちゃ。
■Chrome(Iron5.0)
○iGoogle外での起動
○iGoogle内での起動
○OpensocialサポートのあるiGoogle外での起動
ただし、リロードの部分を以下のように修正した。
if( ua.isWebKit){ // this.iframe.location.reload(); this.iframe.contentWindow.location.reload(); }this.iframe.location.reload()はきっと以前のwebkitなのか。
それともSafariとChromeのjsエンジンの違いか。分岐が必要。
■Safari4.0と3.5(Windows版)
○iGoogle外での起動
○iGoogle内での起動
○OpensocialサポートのあるiGoogle外での起動
上のChrome(Iron5.0)用の変更のまま動作。
popupが新しいWindowになったのでactionscriptの見直しが必要。
■Opera
○iGoogle外での起動
×iGoogle内での起動
×OpensocialサポートのあるiGoogle外での起動(srcはセットされているのにロードされていない。)
またdojoのコメントにもそれっぽいことがあったので、srcのセットはonloadイベント内で行うようにした。