يتم تشغيل الرمز التالي وتمريره تحت IE8 ، وحدث خطأ في IE9: انسخ الرمز كما يلي:
document.createElement ('<iframe id = "yige-org-iframe" src = "yige.org.logo.gif" style = "الموضع: المطلق ؛ أعلى: 0 ؛ اليسار: 0 ؛ العرض: 1px ؛ الارتفاع: 1px ؛ الرؤية: مخفي ؛"> </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-pixel.gif") ؛
iframe.setattribute ("style" ، "الموضع: المطلق ؛ أعلى: 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 = false ؛
}
var Oframe = isie؟ document.createElement ("<iframe name = /" " + this._framename +" / ">"): document.createElement ("iframe") ؛ oframe.name = "iframename" ؛
// ============================================================ ===============================================================
وظيفة ajaxpost (formid ، showid ، waitid ، showidclass ، submitbtn ، rection) {
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 HandlerSult = function () {
var s = '' ؛
var تقييم = false ؛
Showloading ('none') ؛
يحاول {
s = $ (ajaxframeid) .contentWindow.document.xmldocument.text ؛
} catch (e) {
يحاول {
s = $ (ajaxframeid) .contentwindow.document.documentElement.firstchild.whoLetext ؛
} catch (e) {
يحاول {
s = $ (ajaxframeid) .contentwindow.document.documentElement.firstchild.nodevalue ؛
} catch (e) {
S = "خطأ داخلي ، لا يمكن عرض هذا المحتوى" ؛
}
}
}
if (s! = '' && s.indexof ('ajaxerror')! = -1) {
evalscript (s) ؛
تقييم = صحيح ؛
}
if (showIdClass) {
$ (showid) .className = ShowIdClass ؛
if (submitbtn) {
apportedbtn.disabled = false ؛
}
}
if (! evalited && (typeof ajaxerror == 'undefined' ||! ajaxerror)) {
ajaxinnerhtml ($ (showid) ، s) ؛
}
ajaxerror = فارغة ؛
if ($ (formid)) $ (formid) .target = formTarget ؛
if (typeof rection == 'function') {
يتذكر()؛
} آخر {
eval (استدعاء) ؛
}
إذا (! تقييم) evalscript (s) ؛
ajaxframe.loading = 0 ؛
$ ('append_parent'). removechild (ajaxframe) ؛
} ؛
if (! ajaxframe) {
يحاول {
ajaxframe = document.createElement ('<iframe name = "' + ajaxframeid + '" id = "' + ajaxframeid + '"> </frame>') ؛
} catch (e) {
ajaxframe = document.createElement ('iframe') ؛
ajaxframe.name = ajaxframeid ؛
ajaxframe.id = ajaxframeid ؛
}
ajaxframe.style.display = 'none' ؛
ajaxframe.loading = 1 ؛
$ ('append_parent'). appendChild (ajaxframe) ؛
} آخر إذا (ajaxframe.loading) {
العودة كاذبة
}
_attachevent (ajaxframe ، 'load' ، HandlerSult) ؛
Showloading () ؛
$ (formid) .target = ajaxframeid ؛
$ (formid) .Action += '& inajax = 1' ؛
$ (formid) .submit () ؛
العودة كاذبة
}