IE历史记录跟踪,IFRAMES和跨域错误

时间:2010-06-02 17:45:23

标签: flash internet-explorer cross-domain browser-history scriptresource.axd

所以这是交易。我们有一个在HTML文件中运行的Flash应用程序。对于一个页面,我们在ASP.NET中调用IFRAME中的遗留报告系统。然后,此页面使用跨域脚本编写回传到Flash应用程序(在两个页面中都设置了document.domain =“domain”。

这一切都有效。

现在是踢球者。 Flash已启用历史记录跟踪。这会加载创建div标签的history.js文件来存储页面更改,以便后退和前进按钮在浏览器中工作。

适用于Firefox和Chrome,因为它们会创建div标签。

无论其

在Internet Explorer 中,history.js会创建另一个名为ie_historyFrame的IFRAME(而不是DIV)。当ScriptResource.axd代码尝试使用以下命令访问它时:

var frameDoc = this._historyFrame.contentWindow.document;

我们收到“Access is Denied”错误消息。哎呀!

  • 我们尝试获取此IFRAME的句柄并插入document.domain代码。失败。
  • 我们已尝试编辑flex也用于包含document.domain的历史文件模板文件...失败。
  • 我试图编辑基础知识 ASP.NET页面禁用历史记录 在ScriptManager中跟踪 控制。 FAIL。

我的智慧结束了这一次。我们有需要使用IE访问此站点的用户。他们是我们无法告诉他们使用Firefox的大客户。

我们非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

我知道这是一个最后的情况,但你应该考虑说明IE可能无法支持。你需要客观的证据,一些明确显示问题的样本,以及一个关于剩余标准的好处的精心排练的spiel,而不是专门编写一个(可能是过时的)IE版本。

它永远不会得到保证,但是如果你能说服他们有客观的好处会降低短期和长期成本那么值得尝试 - 只要记住,因为很多客户都关心商业案例而不是技术案例。

答案 1 :(得分:0)

不确定但是从服务器发送此标头可能有效:

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

我用它在iframe中设置JS代码中的cookie。