今天用ie9用测试,发现报js错误 DOM Exception: INVALID_CHARACTER_ERR (5)

原因是 IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。

document.createElement('<iframe id="yui-history-iframe" src="http://images.cnblogs.com/defaults/transparent-pixel.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"></iframe>');这种方式不可以了。

解决方法:

采用标准的方式来实现:

if( $.browser.msie &&/9.0/.test(navigator.userAgent)){
                var iframe = document.createElement("iframe");
                iframe.setAttribute("class","bgiframe");
                iframe.setAttribute("frameborder","0");
                iframe.setAttribute("style","display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');top:expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\');left:expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\');width:expression(this.parentNode.offsetWidth+\'px\');height:expression(this.parentNode.offsetHeight+\'px\');");
                this.insertBefore( iframe,this.firstChild );
            }else{
                this.insertBefore( document.createElement(html),this.firstChild );
            }

------------------------------------------------

我的项目里是 jquery.ui.dialog 调用了方法

  if ($.fn.bgiframe) {
     uiDialog.bgiframe();
   }

意思就是如果jquery加载了bgiframe插件,就调用bgiframe的兼容ie6 select功能,其函数会判断是否是ie6,如果是就动态生成一个iframe遮盖住select,但之前j版本的query.bgiframe-2.1.1.js的判断有问题,ie9也会判断为true,就会执行会报错的那句语句document.createElement(html)。替换为新版本的jquery.bgiframe-2.1.2.js即可。

------------------------------------------------

以上都是很容易解决的问题,网上一查就有答案,关键我是照着网上的做了,还是报错。让我无从下手,改了jquery.bgiframe-2.1.2.js的代码,在ie上用开发人员工具debug发现没有一点变化,我甚至删除了这个js,但juery仍有这个函数。我在项目里全盘搜索这个函数名,都搜不到,完全不知道jquery怎么加载这个函数的。被卡了好久,以为是我自己对js不熟悉,哪里不懂。

一时我突然想到去看下jsp页面加载js的代码,一行一行看加载了哪些js,都是加载项目本地的js,然后突然发现有一个js不是加载的本地的。我像发现新大陆一样,一下子就觉得问题在这里。点进去看这个js,这个js是公司自己写的,用来联想工号的,这个js其他项目都在用,写好很久了,这个js也写了bgiframe的函数。肯定是用的旧版本iframe的判断。

找到原因了,jsp页面先引用我的jquery.bgiframe-2.1.2.js,然后又引用这个js, 就把新的函数又覆盖为旧的了。我把jquery.bgiframe-2.1.2.js的引用放在这个js后面就解决了。

真是定位问题99%的时间,修只要很小的一下操作啊。

我最大的疏忽就是忘了jsp可以引用项目外,网络上的js了。这个肯定可以,只是经验少了,没想到,一直以为是自己哪些地方没考虑到呢。要相信自己,能力还是很强的。

转载于:https://www.cnblogs.com/onlywujun/archive/2012/12/23/2829735.html

jsp还能引用项目外的js,css啊相关推荐

  1. vue列表项吸顶 js+css两种 骚操作

    demo需求:vue项目中,在列表里,滑动到哪个日期的时候,哪个日期就吸顶显示: js方法: 用js的方法思路:获取每一项item的底部距离顶部的高度,把所有的高度放在一个数组里面,在去循环比对,在使 ...

  2. tomcat idea项目访问、下载web项目外的静态资源(图片、文件),js下载项目外的文件,server.xml设置对idea中的项目不生效

    读取项目外的文件,配置Tomcta的虚拟路径,  打开文件:Tomcat/conf/server.xml  修改文件配置: <Host name="localhost" ap ...

  3. Ueditor(三):将图片上传至项目外的目录

    Ueditor的图片上传默认是上传到项目下的,而项目所处目录是通过controller.jsp中的application.getRealPath( "/" )传进去的.可惜的是这个 ...

  4. jsp基础代码片段(含sql与js和jsp的交互)与简易贴吧网站项目

    因为老是翘掉学校jsp的课程,结果结课作业本来是一个小组做一个网站,结果我被老师指名道姓的要求一个人做一个网站,于是学了几天jsp,用了2天时间做了个网站 , 但安全性几乎为0 , 先写一篇博客记录一 ...

  5. 为什么 JSP 还没有被淘汰?

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源 | OSC开源社区(ID:oschina2013) 近日,一位网友提问"为什么jsp还没有被淘汰",原因是 ...

  6. 限定项目的 Node.js 版本

    限定项目的 Node.js 版本 限定项目运行所需的 Node.js 版本可保证项目在一个稳定可预期的环境中运行,减少不必要的故障.甚至有些依赖库只能工作于某些版本下.同时,不加以限制的话,在多人合作 ...

  7. https网站引用http路径的js和css失效解决办法

    Jazzy  html  2015-03-26 在https的网站中引用http路径的js或css会导致不起作用,其形如: Html <script src="http://code. ...

  8. TP引用样式表和js文件及验证码

    TP引用样式表和js文件及验证码 引入样式表和js文件 <script src="__PUBLIC__/bootstrap/js/jquery-1.11.2.min.js"& ...

  9. 在jsp页面下, 让eclipse完全支持HTML/JS/CSS智能提示

    我们平时用eclipse开发jsp页面时智能提示效果不太理想,今天用了两个小时发现了eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclip ...

最新文章

  1. C++ const 理解
  2. 为什么需要在TypedArray后调用recycle
  3. 拦截器和过滤器之间有很多相同之处,但是两者之间存在根本的差别
  4. linux手工迁移php,Linux+PHP+MySql网站迁移配置
  5. linux命令:mkdir 命令详解
  6. 华为5c android n风格,华为荣耀畅玩5C的屏幕怎么样
  7. SQLi LABS Less-4 联合注入+报错注入
  8. Java 线程详解(一)线程的基础
  9. MATLAB控制系统视频教程
  10. 机顶盒显示网关服务器数据下发超时,智能机顶盒网关服务器数据下发超时
  11. macOS:实现 声音内录 不用其它App
  12. 北理工2013《Java程序设计》课程设计要求
  13. 机器学习 梯度到底是什么?
  14. linux双系统重启卡光标,Ubuntu 16.04安装完重启后黑屏,光标一直闪
  15. STM32F103开发环境的搭建
  16. Android Studio 模拟器联网设置
  17. bq4050读固件_BQ4050 + STM32 MCU 虚拟IIC读取SMBUS数据
  18. What does shot mean?
  19. Java中Switch-case语句,case一个范围、区间,使用三目运算符解决!
  20. UML活动图分析及用例生成实例

热门文章

  1. ISA Server 2006防火墙安装与管理指南(含企业版NLB与CARP的配置)
  2. [Java] 蓝桥杯ADV-147 算法提高 学霸的迷宫
  3. [Java] 蓝桥杯BASIC-27 基础练习 2n皇后问题
  4. 【读书笔记】摘自Google开源项目风格指南-C++风格指南
  5. laravel leftjoin 右侧取最新一条_高铁规划:湖南至广西将增添一条高铁,填补中西部地区铁路网空白...
  6. 电脑雕刻教程_C4D无敌渲染神器! 阿诺德全套预设+案例教程+3.0汉化插件合集!真香!【810期】...
  7. 【DS】atoi()实现
  8. 【CF453D】 Little Pony and Elements of Harmony(FWT)
  9. 给项目添加spring的测试单元
  10. 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁...