다음 코드는 IE8에 따라 실행되고 전달되며 IE9에서 오류가 발생했습니다. 코드를 다음과 같이 복사하십시오.
document.createElement ( '<iframe id = "yige-org-iframe"src = "yige.org.logo.gif"style = "위치 : 절대; 상단 : 0; 왼쪽 : 0; 높이 : 1px; 가시성 : hidden;"> </iframe>');
오류 프롬프트 : 예외 : Script5022 : DOM 예외 : invalid_character_err (5)
아이디어 분석 :
1 단계 : IE9, Firefox, Opera, Safari 및 기타 브라우저와 호환됩니다.
코드 사본은 다음과 같습니다. var iframe = document.createElement ( "iframe");
iframe.setattribute ( "id", "yui-History-Iframe");
iframe.setAttribute ( "src", "../../images/defaults/transparent-fixel.gif");
iframe.setattribute ( "스타일", "위치 : 절대; 상단 : 0; 왼쪽 : 0; 너비 : 1px; 높이 : 1px; 가시성 : 숨겨진;");
2 단계 : IE6-8과 호환 가능 : IE6-8이 iframe의 이름 속성을 수정할 수 없기 때문에
코드 사본은 다음과 같습니다.
var oframe = isie? document.createElement ( "<iframe name =/" " + this._framename +"/">") : document.createElement ( "iframe");
oframe.name = "iframname";
포괄적 인 솔루션 :
코드 사본은 다음과 같습니다.
var isie = (document.all)? 사실 : 거짓; // 여기는 IE인지에 대한 간단한 판단 만 있습니다. 자세한 브라우저 판단은 브라우저 유형 감지를 참조하십시오.
var ua = navigator.useragent.tolowercase (). match (/msie ([/d.] +) +)/) [1];
if (ua == "9.0") {
Isie = 거짓;
}
var oframe = isie? document.createElement ( "<iframe name = /" " + this._framename +" / ">") : document.createElement ( "iframe"); oframe.name = "iframename";
// ========================================================================= ===========================================================================
함수 ajaxpost (cormid, 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 = $ (cormid) .target;
var handleresult = function () {
var s = '';
var 평가 = 거짓;
쇼 로딩 ( 'None');
노력하다 {
s = $ (ajaxframeid) .ContentWindow.document.xmldocument.text;
} catch (e) {
노력하다 {
s = $ (ajaxframeid) .contentWindow.document.documentElement.firstchild.woLetext;
} catch (e) {
노력하다 {
s = $ (ajaxframeid) .ContentWindow.document.documentElement.firstchild.nodevalue;
} catch (e) {
s = '내부 오류,이 내용을 표시 할 수 없습니다';
}
}
}
if (s! = ''&& s.indexof ( 'ajaxerror')! = -1) {
evalscript (들);
평가 = true;
}
if (showidclass) {
$ (showid) .className = showIdclass;
if (submittn) {
제출 된 btn.disabled = false;
}
}
if (! 평가 && (AjaxError == 'undefined'||! ajaxerror)) {
ajaxinnerhtml ($ (showid), s);
}
ajaxerror = null;
if ($ (cormid)) $ (compord) .target = formtarget;
if (typeof Recall == 'function') {
상기하다();
} 또 다른 {
평가 (리콜);
}
if (! 평가) evalscript (s);
ajaxframe.loading = 0;
$ ( 'backend_parent'). RemoveChild (ajaxframe);
};
if (! ajaxframe) {
노력하다 {
ajaxframe = document.createElement ( '<iframe name = "' + ajaxframeid + '"id = "' + ajaxframeid + '"> </iframe>');
} catch (e) {
ajaxframe = document.createElement ( 'iframe');
ajaxframe.name = ajaxframeid;
ajaxframe.id = ajaxframeid;
}
ajaxframe.style.display = 'none';
ajaxframe.loading = 1;
$ ( 'backend_parent'). AppendChild (ajaxframe);
} else if (ajaxframe.loading) {
거짓을 반환합니다.
}
_attachevent (ajaxframe, 'load', handleresult);
showloading ();
$ (cormid) .target = ajaxframeid;
$ (compid) .action += '& inajax = 1';
$ (cormid) .submit ();
거짓을 반환합니다.
}