又是兼容性问题
被用户搞的想发疯。
先是在IE11下开发的代码,用户说在IE8下不正常,安装了IETester测试解决了,用户还是说不对,另外找几台机器测试明明没问题
跑到用户处一看,原来是新的功能没问题,旧的在线打开Word文档的页面出问题了,这个页面用的是SOAOffice,在IE8下无法打开文档,必须进入兼容模式,新的功能又不支持IE8的兼容模式,这个问题好解决,把旧的页面上加上使用强制使用IE=7方式就行了
然后用户又抱怨了,很多用户爱用搜狗(不是你们说了大家都用IE8的么),搜狗下新的功能必须使用高速模式才能运行,兼容模式不正常,查了下百度,原来搜狗的高速模式使用的是Chromium核心,兼容模式明明是IE核心么,为什么不对呢?跟用户说你们把搜狗设成默认使用高速模式好了
过了一天,用户又抱怨了,在线打开word文档的功能高速模式下不能使用,这次看了下,原来是因为使用Chromium核心不支持SOA浏览器插件的原因......这个没辙了,在搜狗了折腾了半天,网上搜索了半天,最后找到个搜狗设置选项,可以让搜狗在兼容模式下启用高级渲染模式(我以为是webkit渲染呢),这样页面就正常了,还是使用兼容模式吧
又过了一天,用户又抱怨了,说下面的使用人员老打电话询问为什么搜狗不能正常使用,他们老是要解释太烦了,要求浏览器能自动运行正常。我快要吐血了,搜狗浏览器不是我做的好伐
这次又百度了半天,查看了关于搜狗浏览器兼容模式和正常IE的差异,没查到什么关系,到是有说IE8下兼容模式和正常模式的差异,包括怪异模式等
于是先在不同浏览器里打开新功能页面输入javascript:alert(document.compatMode)测试了下,似乎大家都差不多,都是CSS1Compat,包括搜狗的高速和兼容模式,然后又输入javascript:alert(document.documentMode)测试下了,这次不一样了,高速模式是undefined,不支持这个参数,兼容模式结果是7
这下明白了,原来搜狗的兼容模式不是指使用IE当前版本做核心,而是直接使用IE7的模式,难怪页面不正常
那在搜狗里指定使用IE高级版本管用不管用呢?修改测试了下,还是管用的,于是干脆直接把新页面指定使用IE=edge命令,这是告诉浏览器你还是使用当前安装的IE版本吧,这样搜狗实际渲染时使用的就是IE8了
问题总算解决了,不太明白的就是为什么我自己本机测试时无论什么浏览器<meta http-equiv="X-UA-Compatible" content="IE=edge" />放在<head runat="server">下都是没有问题的,但是用户那不行,必须在masterpage里重新放置一个单独的<head>里才生效