2010年3月3日水曜日

iframe内でのHTML(のJavaScript)で動的生成してアプレットタグを作成するときは 気をつけたほうがよさそうだ。

GAEでファイル管理システムを作成して
Javaアプレットを登録し当ブログからiframeタグで
GAE上のアプレットを呼び出せるようにしてみたところ
ブラウザがIE6(IE7でもだったが)の場合、
呼び出せなかった。

別ウィンドウからの呼び出しでは正常動作した。

iframeに指定されたHTMLファイルは、ロードが完了すると
jQuery関数を使用しサーバーにアクセスし、
取得情報を元に
JavaScriptで、HTMLタグを動的に生成する。
生成された後、

(アプレットの場合)ブラウザーはアプレットのリソースを読み込む
この時の挙動(仕様)が、IEとFireFoxの違いがあるようだ。




FireFoxの場合、いずれの場合も正常動作している。
(自分の認識とfirefoxの挙動は完全に一致している。)



まず、ベースとなるURLがIEの場合だと
Iframeが記述されたHTMLの場所となってしまう。<---仕様なのか?

この為、絶対指定で読み込むように修正してみたところ アプレットの起動は、
できるようになった。 
起動できるようになったアプレットは、リソースにアクセスしにいくのだが
この時のベースアドレスが、またまたIframeが記述されたHTMLの場所と 
なってしまいエラーとなる。 

iframeに指定されたhtmlファイルが動的にタグ生成を行わない場合を
チェックしてみると 問題なくIEで正常動作した。

 
結局最終的には、iframeでの指定先ファイルをjspで作成することにした。 
今後、iframe内でのHTML(のJavaScript)で動的生成してアプレットタグを作成するときは
気をつけたほうがよさそうだ。

0 件のコメント:

コメントを投稿