0

これが取引です。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を使用するだけではわからない大きなクライアントです。

任意の提案をいただければ幸いです。

4

2 に答える 2

0

確かではありませんが、サーバーからこのヘッダーを送信すると機能する可能性があります。

// in PHP...
header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"',true);

iframe内のJSコードからCookieを設定するために使用しました。

于 2010-06-13T16:39:28.900 に答える
0

これが最後のシナリオであることは理解していますが、IE がサポートできない可能性があるというケースを検討する必要があります。客観的な証拠、問題を明確に示すいくつかのサンプル、および IE の (おそらく時代遅れの) バージョンに合わせてコーディングするのではなく、標準に準拠し続けることの利点について十分に練られた熱弁が必要です。

決して保証されるわけではありませんが、短期的および長期的なコストを削減する客観的な利点があることを彼らに納得させることができれば、試してみる価値があります。多くのクライアントにとって、技術的なケースではなくビジネス上のケースに関心があることを覚えておいてください。 .

于 2010-06-10T18:03:12.147 に答える