以下代码在IE8下运行通过,在IE9中出错: 复制代码 代码如下: document.createElement(''); 错误提示: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("") : 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("") : document.createElement("iframe");oFrame.name = "iframName";//========================= function ajaxpost(formid, showid, waitid, showidclass, submitbtn, recall) { var waitid = typeof waitid == 'undefined' || waitid === null ? showid : (waitid !== '' ? waitid : ''); var showidclass = !showidclass ? '' : showidclass; var ajaxframeid = 'ajaxframe'; var ajaxframe = $(ajaxframeid); var formtarget = $(formid).target; var handleResult = function() { var s = ''; var evaled = false; showloading('none'); try { s = $(ajaxframeid).contentWindow.document.XMLDocument.text; } catch (e) { try { s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.wholeText; } catch (e) { try { s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.nodeValue; } catch (e) { s = '内部错误,无法显示此内容'; } } } if (s != '' && s.indexOf('ajaxerror') != -1) { evalscript(s); evaled = true; } if (showidclass) { $(showid).className = showidclass; if (submitbtn) { submitbtn.disabled = false; } } if (!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) { ajaxinnerhtml($(showid), s); } ajaxerror = null; if ($(formid)) $(formid).target = formtarget; if (typeof recall == 'function') { recall(); } else { eval(recall); } if (!evaled) evalscript(s); ajaxframe.loading = 0; $('append_parent').removeChild(ajaxframe); }; if (!ajaxframe) { try { ajaxframe = document.createElement(''); } catch (e) { ajaxframe = document.createElement('iframe'); ajaxframe.name = ajaxframeid; ajaxframe.id = ajaxframeid; } ajaxframe.style.display = 'none'; ajaxframe.loading = 1; $('append_parent').appendChild(ajaxframe); } else if (ajaxframe.loading) { return false; } _attachEvent(ajaxframe, 'load', handleResult); showloading(); $(formid).target = ajaxframeid; $(formid).action += '&inajax=1'; $(formid).submit(); return false;}