繁体   English   中英

asp.net ScriptManager EnableHistory=“true” InvalidOperationException

[英]asp.net ScriptManager EnableHistory=“true” InvalidOperationException

我使用ScriptManager的 asp.net(v. 4.0) EnableHistory="true"管理 ajax 浏览器历史记录,直到今天一切正常。 我今天从 localhost 启动浏览器,并在 IE 9(仅限 IE)中收到此错误消息

消息:Sys.InvalidOperationException:要在 IE 中使用历史记录功能,页面必须有一个 iFrame 元素,其 id 为“__historyFrame”,指向从“标题”查询字符串参数获取其标题并调用 Sys.Application._onIFrameLoad 的页面() 在父 window 上。 这可以通过在 ScriptManager 上将 EnableHistory 设置为 true 来完成。

我已经撤消了我今天所做的所有修改,清除了我的浏览器缓存+cookies+历史记录+所有内容,并从 Windows 和 Temp 文件夹中删除了“临时 ASP.NET 文件”,但这个错误不会 Z34D1F91FB2E514B85676FA 消失。 从我的母版页中删除<meta http-equiv="X-UA-Compatible" content="IE=7" />可以消除错误,但由于很多样式出现错误,这不是一种选择。 元数据从一开始就在那里,一切正常,所以我的问题是为什么现在?

任何进一步重置我的环境的指针(例如删除一些隐藏文件)或对可能发生的事情有所了解都会有所帮助。 谢谢。

ScriptManager 输出 iframe 以使历史管理在 IE7 中正常工作。 在这种情况下,不幸的是,有一个错误。 您的浏览器是 IE9,因此它认为您不需要 iframe。 但是您的元标记使客户端表现为 IE7,因此它确实需要 iframe。 它将在 .NET 的下一版本中修复。 在此之前,您应该能够通过查看使用兼容模式或实际 IE7 时呈现的 iframe 内容并在您的页面中模仿该内容来解决该问题。 但是当它真的是 IE7 时,你需要确保它不会在页面中结束两次,所以如果你检测到 IE >= 8,只有 output 它。我希望有道理吗? :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM