innerHTML或是outerHTML 比如说: 代码如下:var crtDIV = document.getElementById(divIDName); if (crtDIV) { crtDIV.parentNode.removeChild(crtDIV); crtDIV.outerHTML = ""; } 就有可能发现,整个界面都是无法选中,只有链接才可点击. 解决这方面的异常或是IE错误,只有: 不用outerHTML,或innerHTML. 如果是用到了innerHTML 就给这个innerHTML的对象.focus(); obj.focus() 就可以正常操作页面了.
减少DOM数可以加快浏览器的在解析页面过程中DOM Tree和render tree的构建,从而提高页面性能。为此我们可以把页面中那些首屏渲染不可见的部分HTML暂存在TextArea中,等完成渲染后再处理这部分HTML来达到这个目的。 要把TextArea 中暂存的HTML内容添加到页面中,使用元素的outerHTML属性是最简单方便的了,不过在DOM标准中并没有定义outerHTML,支持的浏览器有IE6+,safari, operal和 Chrome,经测试FF4.0- 中还不支持。所以我们就来实...
方法一: 用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持)||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串,显示的时候反过来就可以了(实际上显示的时候不用通过转换,直接赋值在div就可以正常显示的)。 代码如下: function HTMLEncode(html) { var temp = document.createElement ("div"); (temp.textConten...
代码如下:String.prototype.HTMLEncode = function() { var temp = document.createElement ("div"); (temp.textContent != null) ? (temp.textContent = this) : (temp.innerText = this); var output = temp.innerHTML; temp = null; return output; } String.prototype.HTMLDecode = function() { var temp = document.createElement("div"); temp.innerHTML = this; var output = temp.innerText || temp.textContent; temp = ...
方法一: 用的浏览器内部转换器实现转换,要领是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持)||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串,显示的时候反过来就可以了(实际上显示的时候不消通过转换,直接赋值在div就可以正常显示的)。 function HTMLEncode(html) { var temp = document.createElement ("div"); (temp.textContent != nu...
js学习之动态创建html元素 body{margin:0;padding:0;} .sky{background:#000;width:1000;height:500px; position:relative;} #s{ background:#FFF; width:1px; height:1px; overflow:hidden; position:absolute;} 没事造星星玩 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
点击编辑当前内容 var EditField={ configure:function(id){ this.id=id; this.createElements(); //动态生成编辑输入框 this.toScan(); //初始化动态生成的输入框和按钮、待编辑的DOM元素的display属性 this.addEvents(); //给相关的DOM元素添加事件监听器 }, events:function(elem,type,fn){ //用于添加事件的通用函数 if(elem.attachEvent){ elem.attachEvent("on"+type,fn); }else if(elem.addEventListener){ ele...
我们可能往往会去排查问题的缘由,其实,在排查掉冗余的循环和精简了控件数量后,我们发现性能还是不乐观,于是继续排查,一个偶然的修改,却大大改善了效率,就是类似如下的修改: 修改前: 代码如下: objDiv.innerHTML += ‘; 修改后: 代码如下: var imga = document.createElement("img"); imga.setAttribute("src","back.gif"); imga.setAttribute("id","picture"); objDiv.appendChild(imga); 之前可能因为书写的便利,所...
网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; QQDownload 551; SLCC2; .NET CLR 2.0.50727)时间戳: Wed, 12 Aug 2009 07:02:03 UTC 消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)行: 0字符: 0代码: 0 今天调试一段JS代码出现这个状况..在火狐 IE7 和IE6下都正常...郁闷,在网上搜索了一下相关资...
今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 代码如下: 然后在JavaScript 中这样操作: 代码如下: for(var i in entries){ ... var filetable = document.getElementById(filelist); filetable.innerHTML += 111222; } 在FireFox 下这么干是没有问题的,但是放到 IE 下面就死活不行了,问了下同事+搜索了一下,发现在 IE 下 COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, T...
代码如下: appendChild,innerHTML,join //使用appendChild()方法添加span标签 function AppendDiv() { var times=parseInt(document.getElementById('tbTimes').value); var oDiv=document.getElementById('div1'); var Text=document.getElementById('tbText').value; var Time=new Date(); var StartTime=Time.getTime(); for(var i=1;i{ var span=document.createElement('span'); span.appendChild(document.createTextNode(...
令人欣慰的是,使用JavaScript获取节点的方法有很多种,这里简单做一下总结(以下方法在IE7和Firefox2.0.0.11测试通过): 1. 通过顶层document节点获取: (1) document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。 如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),参数...
1。编写js函数 function display(y){$(y).style.display=($(y).style.display=="none")?"":"none";} function $(s){return document.getElementById(s);} 2. 要显示/隐藏的html元素加上 id 属性 控制这个tr的显示/隐藏 3,添加按钮,链接等触发 js 函数 显示/隐藏 javascript显示隐藏层广告 二:javascript控制页面控件隐藏显示的两种方法 javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在...
最近遇到js的效率问题,是关于在页面中新增元素的问题。 假设我们有页面如下: 代码如下: // 脚本位置 现在,我们要往div1中添加对象,大家都知道在为web页面增加一个元素时可以使用如下代码: //方法1 div1.innerHTML = '测试'; 或者: //方法2 var a = document.createElement('a'); a.innertText = '测试'; div1.appendChild(a); 在网上搜索到一个探讨js效率问题的文章,其大概意思是说方法2的效率高,其对比代码如下...
第一种:逐个字符串相加 代码如下:var arr = [item 1, item 2, item 3, ...], list = ; for (var i = 0, l = arr.length; i < l; i++) { list += + arr[i] + ; } list = + list + ; 这种最常见的,但是效率最低!代码逻辑相对来说复杂。 第二种:逐个 push 进数组 代码如下: var arr = [item 1, item 2, item 3, ...], list = []; for (var i = 0, l = arr.length; i < l; i++) { list[list.length] = + arr[i] + ; } list = ...