私は現在、アプリケーションのiframe内にHTMLファイルを表示しているGWTプロジェクトに取り組んでいます。このHTMLファイルは、実際に表示されているときに書き込まれています。フレームをリロードして、HTMLファイルに加えられた変更が画面に反映されるようにしたいと考えています。私はこの2つの異なる方法を実行できます。どちらも開発モードで実行している場合は機能しますが、プロジェクトがデプロイされている場合はどちらも機能しないようです。
私が試した最初の方法は、フレームのURLをそれ自体に設定することでした。
frame.setUrl(frame.getUrl());
JSNIを使用して試した2番目の方法:
public native void refresh() /*-{
if($doc.getElementById('__reportFrame') != null) {
$doc.getElementById('__reportFrame').src =
$doc.getElementById('__reportFrame').src;
}
}-*/;
デプロイされると、フレームがウィンドウに表示され、ファイルへの書き込みが完了すると、これらの更新メソッドのいずれかが呼び出され、フレームが更新されて、完成したHTMLファイルが含まれます。デプロイされたとき、refreshの呼び出しはフレームのコンテンツをリロードしませんが、フレームのコンテキストメニュー(Firefoxの場合)を表示し、[このフレーム]に移動して[再ロード]をクリックすると、フレームが正常にリロードされます。完成したHTMLファイルが含まれています。私はこれをFirefoxの複数のバージョンでテストしましたが運がありませんでした。
誰か提案はありますか?動作がモードごとに異なるのはなぜですか?
ありがとう。