`
ThinkInMyLife
  • 浏览: 48802 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

IE和FF中select.innerHTML

阅读更多

无意中用到一个js的应用,ajax新建一个相册,新建完在选择选择select下拉框中出现:

随手写了个土办法,'check-photo-id'架在select标签上:

 

Dom.get('check-photo-id').innerHTML = Dom.get('check-photo-id').innerHTML + '<option value='+_ss[1]+' selected >'+_ss[2]+'</option>'; 

 

测试下:FF下面工作正常,而IE7下面显示空白。

google下:发现这是IE的一个bug,做个简单的测试例子:

 

<script lanuage="JavaScript"> var tmp; for (var i = 1; i <= 10; i++) { tmp += "<option>" + "1" + "</option>"; } var select = document.getElementbyId("id"); select.innerHTML = tmp; </script> 

 

alert一看:01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option><option>07</option> <option>08</option><option>09</option><option>10</option><option>11</option><option>12</option>

少了个“<option>”,难怪显示不出来了!

 

找了个土办法来解决,既然select的innerHTML有问题,那么就在select的父节点上进行innerHTML吧!

 

Dom.get('select-photo').innerHTML = '<select name=\"photo_id\" id=\"check-photo-id\">' + Dom.get('check-photo-id').innerHTML + '<option value='+_ss[1]+' selected >'+_ss[2]+'</option>' + '</select><span class=\"photo-operate\"><button class=\"button create photo\">创建相册</button></span>'; 

 

 恩,解决!

上面方法不是很安全,用个简单又安全的方法来代替:

var op = new Option("name","value"); op.selected = true; Dom.get('check-photo-id').options[D.get('check-photo-id').options.length] = op;

 

 总结:简单、安全、靠谱!

 

ps:今天又在搞IE的innerHTML的时候发现了个bug,有个p标签,用js给它的innerHTML重置掉!FF没问题,又是IE

居然出了个“未知的运行时错误(unknown runtime error)”提示,google了下:推测在IE下修改p标签的innerHTML属性时,innerHTML值不允许含有区块标签(如:div,p,ul等),so给p标签设置innerHTML这条路是走不通了,建议换成div吧!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    javascript实现动态增加删除表格行(兼容IE FF).docx

    本文将详细介绍如何使用JavaScript来实现在Web页面上动态增加和删除表格行的功能,并确保该功能在Internet Explorer (IE) 和 Firefox (FF) 等浏览器中能够正常运行。此技术对于构建具有高度交互性和响应性的用户界面...

    解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)

    即在Internet Explorer(IE)浏览器中使用`innerHTML`属性向`&lt;select&gt;`元素插入`&lt;option&gt;`标签时遇到的bug,以及如何解决这个bug以实现跨浏览器兼容性,包括IE、Firefox、Opera、Chrome和Safari。 问题的根源在于IE...

    JAVASCRIPT IE 与 FF 中兼容写法记录

    为了实现JavaScript代码在Internet Explorer(IE)和Mozilla Firefox(FF)两大浏览器中的兼容性,开发者们需要了解两种浏览器在DOM操作、事件处理、CSS属性以及JavaScript对象和属性上的差异性。以下是一些关键知识...

    火狐与IE浏览器之间的一些差别收集.docx

    #### 三、CSS完美兼容IE6/IE7/FF的通用方法 为了确保CSS样式能够完美兼容IE6/IE7及Firefox,可以采用以下几种方法: 1. **使用条件注释**:在HTML文档中使用条件注释来针对特定版本的IE提供特殊的样式表。 - 示例...

    管理Jquery包装集

    1. 在页面加载时改变DOM结构可能引发性能问题,尤其是在IE6中可能导致“终止操作”的错误。 2. 修改HTML内容来添加元素不符合DOM标准,可能会在某些浏览器中造成延迟显示或不兼容。 **正确创建元素的方法**: 1. **...

    html页面表格导出excel(原生js浏览器全兼容)

    需要注意的是,上述代码可能在某些老版本的IE浏览器中无法正常工作。为了实现全浏览器兼容,可能需要引入如`FileSaver.js`这样的库来处理文件保存。或者,对于不支持`download`属性的浏览器,可以使用`window.open`...

    JAVASCRIPT IE 与 FF中兼容问题小结

    - IE使用`setCapture()`和`releaseCapture()`来捕获事件,而Firefox使用`addEventListener()`和`removeEventListener()`,并且在Firefox中需提供`true`作为第三个参数来启用事件捕获。 6. **获取鼠标位置**: - ...

    javascript获取选中的文本的方法代码.docx

    // 对于IE浏览器,使用document.selection和createRange方法 // 对于现代浏览器(如Firefox、Chrome等),使用window.getSelection() var selectText = (document.selection && document.selection.createRange) ...

    javascript实现划词标记+划词搜索功能.docx

    event.srcElement.innerHTML = event.srcElement.innerHTML.replace("BuB", ";COLOR:#ff3366'&gt;").replace("EuE", "&lt;/span&gt;"); } searchgoogle(str); isdb = false; } } ``` ##### 4.5 搜索功能实现 当用户选中...

    js使用小技巧

    document.documentElement.innerHTML 第一个style标签 document.styleSheets[0] style标签里的第一个样式 document.styleSheets[0].rules[0] 防止点击空链接时,页面往往重置到页首端。 ()"&gt;word 上一网页...

    如何使用JS获取IE上传文件路径(IE7,8)

    但在较旧的IE浏览器(如IE7和IE8)中,仍然可以通过特定方法获取到文件的完整路径。本文将详细介绍如何在IE7和IE8中使用JavaScript获取上传文件的路径。 首先,我们来看一个名为`validateFileSize`的函数,这个函数...

    JavaScript在IE中“意外地调用了方法或属性访问”

    ### JavaScript在IE中“意外地调用了方法或属性访问” #### 背景与问题概述 ...总之,理解并解决IE中的这些异常需要对JavaScript和DOM有深入的理解,并采取适当的预防措施来确保代码的健壮性和兼容性。

    JavaScript Table行定位效果

    给tr设置relative后就能相对table定位了,看来很简单啊,但问题是这个方法ie8和ff都无效,而且存在很多问题,所以很快就被抛弃了。 ps:该效果用来做tr的拖动会很方便。 接着想到的是给table插入一个新tr,克隆原来...

    基于jquery的关于动态创建DOM元素的问题

    这在页面加载期间执行,尤其是在大型或复杂的页面中,可能导致浏览器卡顿,甚至在IE6中触发“终止操作”的错误。 2. **非DOM标准**:修改`innerHTML`并不遵循DOM(文档对象模型)的标准方法,可能导致某些浏览器...

    JS分页效果JS分页效果

    showPages.prototype.checkPages = function(){ //进行当前页数和总页数的验证 if (isNaN(parseInt(this.page))) this.page = 1; if (isNaN(parseInt(this.pageCount))) this.pageCount = 1; if (this.page ) ...

    js实现编辑div节点名称的方法

    // FF和其它现代浏览器 } } ``` `changeName`函数首先获取了被双击的`div`元素,并将其暂时隐藏。然后,它创建了一个新的`input`元素,用于编辑文本。`input`元素的样式与原来的`div`元素保持一致,这样在视觉上...

    图库新版jQuery焦点图 JS代码

    //document.writeln ('&lt;dd&gt;06月21日 修复IE6下兼容问题&lt;/dd&gt;'); //document.writeln ('&lt;dd&gt;06月01日 懒人图库2012新版上线&lt;/dd&gt;'); //document.writeln ('&lt;dd&gt;05月26日 新增北方网通服务器&lt;/dd&gt;'); //document....

    三星9305收索

    --[if IE 8]&gt;&lt;style index="index" &gt;#u1 a.mnav,#u1 a.mnav:visited,#u1 a.lb,#u1 a.lb:visited,#u1 a.pf,#u1 a.pf:visited,#u1 a.bri,#u1 a.bri:visited{font-family:simsun}&lt;/style&gt;&lt;![endif]--&gt;...

Global site tag (gtag.js) - Google Analytics