Я использую javascript под названием «Facelift 1.2» на одном из моих веб-сайтов, и хотя скрипт работает в Safari 3, 4b и Opera, OmniWeb и Firefox, он не работает ни в одной версии IE.
Но даже в рабочем браузере я получаю следующую ошибку, которую не могу расшифровать.
Может быть, в свое время - с большим опытом работы с Javascript - я смогу, но сейчас я подумал, что спрошу некоторых из вас здесь, в SO.
Ниже приведено всплывающее сообщение об ошибке, которое я получаю в IETester, тестирующем страницу для Interet Explorer 6,7 и 8:
Следующее из консоли Firebug в Firefox 3.0.6:
Веб-сайт: http://www.457cc.co.nz/index.php Если это поможет вам увидеть проблему, упомянутую в действии.
Я также посмотрел, что соответствует строке 620:
«строка 76»:
this.isCraptastic = (typeof document.body.style.maxHeight=='undefined');
, который является частью этого блока кода (взят из flir.js):
// either (options Object, fstyle FLIRStyle Object) or (fstyle FLIRStyle Object)
,init: function(options, fstyle) { // or options for flir style
if(this.isFStyle(options)) { // (fstyle FLIRStyle Object)
this.defaultStyle = options;
}else { // [options Object, fstyle FLIRStyle Object]
if(typeof options != 'undefined')
this.loadOptions(options);
if(typeof fstyle == 'undefined') {
this.defaultStyle = new FLIRStyle();
}else {
if(this.isFStyle(fstyle))
this.defaultStyle = fstyle;
else
this.defaultStyle = new FLIRStyle(fstyle);
}
}
this.calcDPI();
if(this.options.findEmbededFonts)
this.discoverEmbededFonts();
this.isIE = (navigator.userAgent.toLowerCase().indexOf('msie')>-1 && navigator.userAgent.toLowerCase().indexOf('opera')<0);
this.isCraptastic = (typeof document.body.style.maxHeight=='undefined');
if(this.isIE) {
this.flirIERepObj = [];
this.flirIEHovEls = [];
this.flirIEHovStyles = [];
}
}
Весь скрипт также доступен на моем сервере: http://www.457cc.co.nz/facelift-1.2/flir.js
Я просто не знаю, с чего начать поиск ошибки, тем более что она влияет только на IE, но работает в остальном. Может быть, у вас, ребята, есть идея. Я хотел бы услышать их.
Спасибо за чтение.
Jannis
PS: консоль Opera сообщает об этом:
JavaScript - http://www.457cc.co.nz/index.php
Inline script thread
Error:
name: TypeError
message: Statement on line 620: Cannot convert undefined or null to Object
Backtrace:
Line 620 of linked script http://www.457cc.co.nz/facelift-1.2/flir.js
document.body.appendChild(test);
Line 70 of linked script http://www.457cc.co.nz/facelift-1.2/flir.js
this.calcDPI();
Line 2 of inline#1 script in http://www.457cc.co.nz/index.php
FLIR.init();
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'