IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)

以下代码在IE8下运行通过,在IE9中出错:
document.createElement('<iframe id="yui-history-iframe" src="../../images/defaults/transparent-pixel.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"></iframe>');
错误提示:exception : SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5)

思路分析:
第一步:兼容IE9,firefox,Opera,Safari等浏览器;
var iframe = document.createElement("iframe");
iframe.setAttribute("id", "yui-history-iframe");
iframe.setAttribute("src", "../../images/defaults/transparent-pixel.gif");
iframe.setAttribute("style","position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;");

第二步:兼容IE6-8:由于ie6-8 不能修改iframe的name属性
var oFrame = isIE ? document.createElement("<iframe name=/"" + this._FrameName + "/">") : document.createElement("iframe");
oFrame.name = "iframName";

综合解决办法:

        var isIE = (document.all) ? true : false;//这里仅仅简单的对是否是IE进行判断,详细浏览器判断:请参考浏览器类型侦测
        var ua = navigator.userAgent.toLowerCase().match(/msie ([/d.]+)/)[1];
        if (ua == "9.0") {
            isIE = false;
        }
var oFrame = isIE ? document.createElement("<iframe name=/"" + this._FrameName + "/">") : document.createElement("iframe");
oFrame.name = "iframName";

 

时间: 2024-10-04 10:37:04

IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)的相关文章

jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误_jquery

jquery.bgiframe.js在IE9下的错误 复制代码 代码如下: SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) jquery.bgiframe.js, 行8 字符976 错误代码 复制代码 代码如下: 1 {if(!$('iframe.bgiframe',this)[0])this.insertBefore(document.createElement(html),this.firstChild);});};})(jQuery

IE9+已经不对document.createElement向下兼容的解决方法_javascript技巧

今天发现某网站上,IE9和chrome中页面的功能居然有差异,于是在IE9下打开console,发现一堆js报错,用fiddler跟踪了一下,原来代码里有一句是这样的: if(ie){ var iframe = document.createElement('<iframe src="http://www.jb51.net"></iframe>'); } 是的,问题就出在这里:DOM Exception: INVALID_CHARACTER_ERR (5)因为在

zepto和jquery

jQuery的定义 jQuery是一个JavaScript函数库,运行快,效率高,其中最鲜明的特点是写得少,做得多,还为我们提供了丰富的插件;jQuery库包含以下功能:HTML元素选取,HTML元素操作,CSS操作,HTML事件函数,JavaScript特效和动画,HTML DOM遍历和修改,AJAX zepto的定义 Zepto是一个轻量级的针对现代高级浏览器的JavaScript库,它与jquery有着类似的api;如果会用jquery,那也会用zepto;Zepto的设计目的是提供jQu

前端与SQL

本篇将介绍前端本地存储里的Web SQL和IndexedDB,通过一个案例介绍SQL的一些概念. 1. 地图报表的案例 现在要做一个地图报表,如下图所示: 将所有的订单数据做一个图表展示,左边的地图展示每个city的成单情况,右边的图形,展示最近7天的成单情况.由于后端的数据需要前端做一些解析,如向谷歌请求每个city的经纬度,所以后端给前端原始的订单数据,前端进行格式化和归类展示.另外把原始数据直接放前端,前端处理起来可以比较灵活,想怎么展示就怎么展示,不用每次展示方式变的时候都需要找后端新加

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.8 静态属性和方法

2.8 静态属性和方法 在构造jQuery对象模块中还定义了一些重要的静态属性和方法,它们是其他模块实现的基础.其整体源码结构如代码清单2-3所示. 代码清单2-3 静态属性和方法 388 jQuery.extend({ 389     noConflict: function( deep ) {}, 402     isReady: false, 406     readyWait: 1, 409     holdReady: function( hold ) {}, 418     read

zepto与jquery的区别及zepto的不同使用8条小结_jquery

首先是效果: jquery中有fadeIn和fadeOut两个效果,用来实现渐隐渐显的效果,这个在PC端自然是常用的效果.然后我们前端组的组员Mr Huang自然是想到手机页面也可以更加炫丽,于是加上了登录框的渐隐效果.给用户缓冲的效果不错. 但是,zepto中并没有fadeIn和fadeOut,怎么办?难道真的就无法满足Mr Huang的愿望了吗?No. I will do it.在zepto中有个动画效果(animate),用这个效果来实现渐隐还是不错的.咱们引用中文文档中的说明 http:

JavaScript利用append添加元素报错的解决方法_javascript技巧

1.错误描述 在IE浏览器上: Uncaught HierarchyRequestError:Failed to excute 'appendChild' on 'Node':The new child element contains the parent. 在谷歌浏览器上: SCRIPT5022:DOM Exception:HIERARCHY_REQUEST_ERR(3) error 2.错误原因 在append()中包含append() 如: append(append("String&q

Safari Private 模式下 localStorage 的问题

现如今好多浏览器都有「隐身模式」,Safari 管这叫「Private Browing」,国内各种牌子的套壳浏览器叫「无痕浏览」.私以为从命名上来说,倒是国内更中文一些. 这种模式下浏览网页踏雪无痕,雁过不留声.具体来说,与正常模式的区别是浏览器不会保存历史记录,没有页面缓存,所有本地数据也都是临时的,页面关闭后无法还原.譬如本文下面要讲到的 localStorage. 并不是说这种模式下绝对安全,服务器仍然对用户的浏览是有感知的.所以 IP 什么的依然可以追踪.这世界并不如我们天真设想般烂漫.

chrome,IE8,ie9中同步(sync)方式的ajax导致dom更新滞后解决方法

当使用sync方式的ajax加载时会导致dom操作被挂起,有此问题的浏览器有chrome,IE8,9等(未详测), 举例:  代码如下 复制代码 dialog = new Dialog({}).open(); // sync方式的ajax $.ajax({    url: "some/url",     async: false, // load data with sync call     // other params }); 以上代码中,dialog是个对话框对象,正常情况下应