Следующий код запускается и передается в IE8, а в IE9 произошла ошибка: скопируйте код следующим образом:
document.createElement ('<iframe id = "yige-org-iframe" src = "yige.org.logo.gif" style = "Положение: Absolute; Top: 0; слева: 0; ширина: 1px; рост: 1px; видимость: hidden;"> </iframe>');
Запрос ошибки: Исключение: Script5022: DOM Exception: Invalid_character_err (5)
Анализ идеи:
Шаг 1: совместим с IE9, Firefox, Opera, Safari и другими браузерами;
Кода кода выглядит следующим образом: var iframe = document.createElement ("iframe");
iframe.setattribute ("id", "yui-istory-iframe");
iframe.setattribute ("src", "../../images/defaults/transparent-pixel.gif");
iframe.setattribute ("style", "Положение: Absolute; Top: 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)? Верно: Неверно; // Вот лишь простое суждение о том, есть ли это т.е. Для получения подробного суждения браузера: обратитесь к обнаружению типа браузера
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, отправить, Recall) {
var waitid = typeof waitId == 'не определен' || 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 reved = 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 (ы);
Оценивается = true;
}
if (showidclass) {
$ (showid) .classname = showidclass;
if (отправить) {
oppentbtn.disabled = false;
}
}
if (! Оценит && (typeof ajaxerror == 'undefined' ||! ajaxerror)) {
ajaxinnerhtml ($ (showid), s);
}
ajaxerror = null;
if ($ (formid)) $ (formid) .target = formTarget;
if (typeof remeple == 'function') {
отзывать();
} еще {
Eval (Remeply);
}
if (! Оценивается) evalscript (ы);
ajaxframe.loading = 0;
$ ('append_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;
$ ('append_parent'). appendchild (ajaxframe);
} else if (ajaxframe.loading) {
вернуть ложь;
}
_attachevent (ajaxframe, 'Load', HandlerSult);
showloading ();
$ (formid) .target = ajaxframeid;
$ (formid) .action += '& inajax = 1';
$ (formid) .submit ();
вернуть ложь;
}