Hen*_*und 12 silverlight internet-explorer refresh windows-8 internet-explorer-10
更新:该问题有一个解决方法.通过包含以下元标记之一强制IE10进入兼容模式:
<meta http-equiv="x-ua-compatible" content="IE=7" />
<meta http-equiv="x-ua-compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud)
由于各种原因,这不是一个完美的解决方案,但它至少消除了这个问题.
原始问题:
几个月前我意识到在Windows 8上的IE10中我们的Silverlight应用程序存在问题(我还没有尝试过Windows 7的IE10预览版).当托管我们的SL应用程序的asp.net页面首次加载时,一切正常,应用程序按预期加载.如果我立即刷新页面,它也会按预期重新加载.但是:如果我通过点击它来关注Silverlight应用程序然后点击F5,它就会变成空白.这就像插件完全消失了.如果我使用Fiddler跟踪请求,我可以看到没有为xap文件发出请求.我一直希望这可以在IE10的补丁版本中修复,但到目前为止没有任何改变.当我尝试谷歌搜索时,我找不到任何关于此的信息.我不太可能成为第一个发现它的人,我很惊讶我没有找到更多的信息.要重现此问题:
一些观察:
现在问我的问题:
我在IE 10中看到了与Silverlight应用程序相同的问题.
我已尝试添加上面建议的IE 8兼容性元标记,但这并不能始终如一地解决问题.在说每5次刷新尝试后,它似乎只能间歇性地工作?!
我可以看到解决这个问题的唯一方法是强制浏览器模式进入"IE 10兼容性视图",我不认为这可以通过页面内容(元标记等)完成吗?我必须删除IE 8兼容性元标记,以便地址栏中的"兼容性视图"按钮可用,然后要求用户单击兼容性按钮,然后记住该网站.这导致浏览器进入浏览器模式:"IE 10 Compat View"和文档模式:"IE7标准".然后,刷新行为按预期和以前一致地工作.
这对我们来说是个大问题.我们构建了Silverlight应用程序,以便浏览器刷新按钮用于刷新应用程序中的页面/内容(用户保持登录状态等).我们必须要求用户将我们的站点设置为以兼容模式运行,以使刷新功能按预期工作,这真的很糟糕.
请注意,这仍然可以在Chrome中按预期运行.由于这个问题我们可能需要建议我们的用户使用Chrome,这似乎很愚蠢!
更新:
解决方法似乎是始终使用JavaScript动态地将Silverlight对象加载到其托管页面中.
例如
function onLoad() {
var silverlightControlHost = document.getElementById("silverlightControlHost");
silverlightControlHost.innerHTML = "<object ...
Run Code Online (Sandbox Code Playgroud)
更新2:
以下是我用来解决此问题的最新代码:
...
function unloadSilverlight() {
document.getElementById("silverlightControlHost").innerHTML = "";
}
function focusOnSilverlight() {
document.getElementById("silverlightObject").focus();
}
function onLoad() {
window.onbeforeunload = unloadSilverlight;
setTimeout(focusOnSilverlight);
}
</script>
</head>
<body onload=" onLoad() ">
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6820 次 |
最近记录: |