0

因此,这里的交易。我们有一个运行在HTML文件中的Flash应用程序。对于一个页面,我们称ASP.NET中的遗留报告系统位于IFRAME中。本页面然后传达回使用跨域脚本(document.domain的=“域”,在这两个页面设置的Flash应用程序。IE历史跟踪,IFRAMES和跨域错误

这一切工作。

现在踢球。闪存已启用历史跟踪。这会将创建一个div标签的商店页面的变化,因此前进和后退按钮在浏览器中工作history.js文件。

为他们创造一个div标签,它为Firefox和Chrome的工作。

无论其

在Internet Explorer中,history.js创建另一个名为ie_historyFrame的IFRAME(而不是DIV)。当ScriptResource.axd代码试图访问此:

var frameDoc = this._historyFrame.contentWindow.document; 

我们得到一个“访问被拒绝”错误消息。哎呀!

  • 我们已经尝试获取此IFRAME的句柄并插入document.domain代码。失败。
  • 我们尝试编辑flex也用于包含document.domain ... FAIL的historytemplate.html文件。
  • 我试过编辑底层的 ASP.NET页面,禁止在ScriptManager 控件中跟踪历史记录 。失败。

在我的智慧结束这一个。我们有需要使用IE访问此网站的用户。他们是大客户,我们无法告诉他们只是使用Firefox。

任何建议将不胜感激。

+0

您是否需要Flash应用程序中的历史管理?它被使用了吗?您可以使用编译器参数禁用它。 – 2010-06-12 14:23:20

+0

为什么你在'ie_historyFrame'中添加'document.domain ='代码失败? – 2010-06-12 21:22:56

回答

0

我知道这是最后一个场景,但你应该考虑让IE可能无法支持的情况。你需要客观的证据,一些清楚显示问题的样本,以及关于剩余标准的好处的良好排练的场景 - 而不是专门针对(可能过时的)IE版本编码。

它从来没有保证,但如果你能说服他们有客观的好处,会降低短期和长期成本,那么值得尝试 - 只要记住,对于许多客户关心的商业案例和而不是技术性案例。

0

不知道但是从服务器发送这个头可能工作:

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

我已经使用了在iframe从JS代码设置cookie。