これが取引です。HTMLファイル内で実行されているFlashアプリケーションがあります。1ページについて、IFRAME内にあるASP.NETのレガシーレポートシステムを呼び出します。次に、このページはクロスドメインスクリプティングを使用してFlashアプリケーションと通信します(document.domain="domain"は両方のページで設定されています。
これはすべて機能します。
今キッカー。Flashでは履歴追跡が有効になっています。これにより、ページの変更を保存するdivタグを作成したhistory.jsファイルが読み込まれ、ブラウザで戻るボタンと進むボタンが機能するようになります。
これは、FirefoxとChromeでdivタグを作成するときに機能します。
でも
Internet Explorerでは、history.jsはie_historyFrameと呼ばれる(DIVの代わりに)別のIFRAMEを作成します。ScriptResource.axdコードが次のコマンドでこれにアクセスしようとした場合:
var frameDoc = this._historyFrame.contentWindow.document;
「アクセスが拒否されました」というエラーメッセージが表示されます。ARGH!
- このIFRAMEのハンドルを取得し、document.domainコードを挿入してみました。不合格。
- flexがdocument.domainを含めるためにも使用するhistorytemplate.htmlファイルを編集しようとしました...失敗しました。
- 基になるASP.NETページを編集して、ScriptManagerコントロールの履歴追跡を無効にしようとしました。不合格。
私のウィットはこれで終わりです。このサイトにアクセスするためにIEを使用する必要があるユーザーがいます。彼らは、Firefoxを使用するだけではわからない大きなクライアントです。
任意の提案をいただければ幸いです。