更新:这个问题有一个解决方法。它是通过包含以下元标记之一来强制 IE10 进入兼容模式:
<meta http-equiv="x-ua-compatible" content="IE=7" />
<meta http-equiv="x-ua-compatible" content="IE=8" />
由于各种原因,这并不是一个真正完美的解决方案,但它至少消除了这个问题。
原始问题:
几个月前,我意识到我们的 Silverlight 应用程序在 Windows 8 上的 IE10 中存在问题(我还没有尝试过 Windows 7 的 IE10 预览版)。当托管我们的 SL 应用程序的 asp.net 页面首次加载时,一切正常,应用程序按预期加载。如果我立即刷新页面,它也会按预期重新加载。但是:如果我通过单击来聚焦 Silverlight 应用程序,然后按 F5,它就会变成空白。就像插件完全消失了一样。如果我使用 Fiddler 跟踪请求,我可以看到没有为 xap 文件发出请求。我一直希望这会在 IE10 的补丁版本中得到修复,但到目前为止没有任何改变。当我尝试谷歌搜索时,我找不到任何关于此的信息。我似乎不太可能成为第一个发现它的人,而且我很惊讶我没有找到更多信息。要重现该问题:
- 创建一个新的 Silverlight 应用程序
- 向 MainPage.xaml 添加某种内容,例如 Button 或其他
- 在 IE10 中运行应用程序(在 Win8 上)
- 单击 Silverlight 应用程序中的任意位置。这只是为了关注插件。
- 刷新页面 (F5)
- 结果:Silverlight 应用程序未加载且页面为空白。
几点观察:
- 完成上述步骤后,再多的刷新也不会使应用程序恢复原状。
- 完成上述步骤后,如果我在地址栏中重新输入 url 并按 Enter,应用程序将按预期加载。
- 如果我在 IE 中启用兼容性视图,该应用程序也会按预期加载。启用兼容性视图后,我所做的任何事情都不会重现该错误。
现在我的问题:
- 有没有其他人观察到这种行为?
- 如果是这样,您是否找到了解决方法?