无意中用到一个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来实现在Web页面上动态增加和删除表格行的功能,并确保该功能在Internet Explorer (IE) 和 Firefox (FF) 等浏览器中能够正常运行。此技术对于构建具有高度交互性和响应性的用户界面...
即在Internet Explorer(IE)浏览器中使用`innerHTML`属性向`<select>`元素插入`<option>`标签时遇到的bug,以及如何解决这个bug以实现跨浏览器兼容性,包括IE、Firefox、Opera、Chrome和Safari。 问题的根源在于IE...
为了实现JavaScript代码在Internet Explorer(IE)和Mozilla Firefox(FF)两大浏览器中的兼容性,开发者们需要了解两种浏览器在DOM操作、事件处理、CSS属性以及JavaScript对象和属性上的差异性。以下是一些关键知识...
#### 三、CSS完美兼容IE6/IE7/FF的通用方法 为了确保CSS样式能够完美兼容IE6/IE7及Firefox,可以采用以下几种方法: 1. **使用条件注释**:在HTML文档中使用条件注释来针对特定版本的IE提供特殊的样式表。 - 示例...
1. 在页面加载时改变DOM结构可能引发性能问题,尤其是在IE6中可能导致“终止操作”的错误。 2. 修改HTML内容来添加元素不符合DOM标准,可能会在某些浏览器中造成延迟显示或不兼容。 **正确创建元素的方法**: 1. **...
需要注意的是,上述代码可能在某些老版本的IE浏览器中无法正常工作。为了实现全浏览器兼容,可能需要引入如`FileSaver.js`这样的库来处理文件保存。或者,对于不支持`download`属性的浏览器,可以使用`window.open`...
- IE使用`setCapture()`和`releaseCapture()`来捕获事件,而Firefox使用`addEventListener()`和`removeEventListener()`,并且在Firefox中需提供`true`作为第三个参数来启用事件捕获。 6. **获取鼠标位置**: - ...
// 对于IE浏览器,使用document.selection和createRange方法 // 对于现代浏览器(如Firefox、Chrome等),使用window.getSelection() var selectText = (document.selection && document.selection.createRange) ...
event.srcElement.innerHTML = event.srcElement.innerHTML.replace("BuB", ";COLOR:#ff3366'>").replace("EuE", "</span>"); } searchgoogle(str); isdb = false; } } ``` ##### 4.5 搜索功能实现 当用户选中...
document.documentElement.innerHTML 第一个style标签 document.styleSheets[0] style标签里的第一个样式 document.styleSheets[0].rules[0] 防止点击空链接时,页面往往重置到页首端。 ()">word 上一网页...
但在较旧的IE浏览器(如IE7和IE8)中,仍然可以通过特定方法获取到文件的完整路径。本文将详细介绍如何在IE7和IE8中使用JavaScript获取上传文件的路径。 首先,我们来看一个名为`validateFileSize`的函数,这个函数...
### JavaScript在IE中“意外地调用了方法或属性访问” #### 背景与问题概述 ...总之,理解并解决IE中的这些异常需要对JavaScript和DOM有深入的理解,并采取适当的预防措施来确保代码的健壮性和兼容性。
给tr设置relative后就能相对table定位了,看来很简单啊,但问题是这个方法ie8和ff都无效,而且存在很多问题,所以很快就被抛弃了。 ps:该效果用来做tr的拖动会很方便。 接着想到的是给table插入一个新tr,克隆原来...
这在页面加载期间执行,尤其是在大型或复杂的页面中,可能导致浏览器卡顿,甚至在IE6中触发“终止操作”的错误。 2. **非DOM标准**:修改`innerHTML`并不遵循DOM(文档对象模型)的标准方法,可能导致某些浏览器...
showPages.prototype.checkPages = function(){ //进行当前页数和总页数的验证 if (isNaN(parseInt(this.page))) this.page = 1; if (isNaN(parseInt(this.pageCount))) this.pageCount = 1; if (this.page ) ...
// FF和其它现代浏览器 } } ``` `changeName`函数首先获取了被双击的`div`元素,并将其暂时隐藏。然后,它创建了一个新的`input`元素,用于编辑文本。`input`元素的样式与原来的`div`元素保持一致,这样在视觉上...
//document.writeln ('<dd>06月21日 修复IE6下兼容问题</dd>'); //document.writeln ('<dd>06月01日 懒人图库2012新版上线</dd>'); //document.writeln ('<dd>05月26日 新增北方网通服务器</dd>'); //document....
--[if IE 8]><style index="index" >#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}</style><![endif]-->...