所以这是交易。我们有一个在 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;
我们收到“拒绝访问”错误消息。啊!
- 我们已尝试获取此 IFRAME 的句柄并插入 document.domain 代码。失败。
- 我们已经尝试编辑 flex 也用于包含 document.domain 的 historytemplate.html 文件...失败。
- 我尝试编辑底层 ASP.NET 页面以禁用 ScriptManager 控件中的历史跟踪。失败。
我对此束手无策。我们有用户需要使用 IE 访问本网站。他们是大客户,我们不能告诉他们只使用 Firefox。
任何建议将不胜感激。