vml兼容IE8报错groupClass等问题不能调用方法

今天给一个老的jsp项目,改流程图出不来的问题,流程图用的什么框架不太清楚,是一个js文件,文件最后生成各种<v:oval> <v:roundrect> <v:shadow>等标签。

浏览器:电脑自带IE浏览器,IE9

使用语言:jsp,js

问题:报错取不到groupClass的属性

备注:后端开发同事反映,最近改了点东西提交后就不生效了,之前生效的

解决:

1. 网上查同类报错,但是不知道从何查起,就查的IE8兼容,找有可能是什么原因,找了4、5条,失败

2. 研究流程图js文件,以及流程图那页jsp,发现style标签中写了这么一句:

v\:* {behavior: url(#default#VML)}

  网上查了下,behavior是CSS1的属性。嗯…… 来继续,behavior是用来 设置或检索对象的DHTML行为。CSS1就不吐槽了, 

  DHTML…… 也就是动态HTML,度娘上查了查,总之反正是比较抽象的。这句话的意思就是,v标签的样式,都要调用浏览器自带

  的VML的样式。而这个 v\: 的写法,也只有IE上能认同。

3. 这样就有了个方向,应该是IE的模式设置的有问题,网上查了查,v\: 只有IE5-IE7能识别,于是按查到的将meta标签改成如下:

  原:

<meta http-equiv="X-UA-Compatible" content="IE=8,9" />

  改为:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

   嗯……出来了开始节点,以及每个节点上的字。???

   还有哪里操作有问题咩?IE的缓存也清了,看了DOM,已经修改了,但还是这个鬼样子?

   不死心,网上继续找,找到一条,说是要把js文件里所有用setAttribute和getAttribute改为直接用 . 调用的,我看了下js文件,

   嗯……有点大的一个工程,而且这个js是项目流程中共用的js文件,改这个有点作死啊。

4. 思索再三,改!改完再看出来没有。半个小时过去后……终于改完了,到IE里面 ctrl+shift+del ,清除所有缓存,ctrl+F5,做乜

    啊!没有用竟然!!!

5. 这是我能想到的再下一个办法了,后面还有很多别的项目的任务,领导在催了,为了效率,请大佬出场吧,大佬过来后给改了

    n久,也没发现改的有什么问题(这说明我至少没改出来bug)。几个小时后大佬说放弃了。

6. 这个是能想到的最后一个办法了,自上次改成功后,到这次改的东西,一个一个复原,定位具体问题出在哪个文件,把找到的

    第一个文件复原了,然后删缓存刷新,成了!行了,接下来就是一段一段再恢复。一段恢复了,流程图ok,两段恢复了,流程

    图还是ok,全恢复了,流程图……还是ok!

   

    对比了下文件,最后修改的就是把

<meta http-equiv="X-UA-Compatible" content="IE=8,9" />

改成了:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

  至于后来为什么一直出不来,好像是IE改了这个content模式之后,清缓存也是不行的,只能关掉重新打开。中间把这句改回去之后,图就再次出不来,再改正常,还是出不来,然后换了台电脑试就可以,同样的代码同样的内容,嗯,关掉IE再打开也可以了。嗯,IE这个大骗子。

 

改了一天半ヽ(#`Д´)ノ┌┛〃

发布了9 篇原创文章 · 获赞 0 · 访问量 2030
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览