ie9上出现DOM Exception: INVALID_CHARACTER_ERR (5)

createUploadIframe : function(id, uri) {
				//create frame
				var frameId = 'jUploadFrame' + id;
				
				if (!$.browser.msie &&/9.0/.test(navigator.userAgent)) {
					var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
					
					if (typeof uri == 'boolean') {
						io.src = 'javascript:false';
					} else if (typeof uri == 'string') {
						io.src = uri;
					}
				} else {
					var io = document.createElement('iframe');
					io.id = frameId;
					io.name = frameId;
				}
				io.style.position = 'absolute';
				io.style.top = '-1000px';
				io.style.left = '-1000px';

				document.body.appendChild(io);

				return io;
			}

ie9上出现DOM Exception: INVALID_CHARACTER_ERR (5)

百度了下发现原来是因为 IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入

所以在创建iframe对象时必须采用标准的方式来实现

标准创建的方式是

var io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;
所以需要对浏览器进行判断

刚开始用的是window.activeObjectx的方式来判断,后来IE9也会进入到字符串拼接的方式创建DOM,后来改为 $.browser.msie && /9.0/.test(navigator.userAgent)的方式进行判断,就解决了IE9上传报错的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值