gpt4 book ai didi

Javascript:错误 'Object Required'。我无法破译它。你可以吗?

转载 作者:行者123 更新时间:2023-12-02 07:56:40 24 4
gpt4 key购买 nike

我在我的一个网站中使用名为“Facelift 1.2”的 javascript,虽然该脚本在 Safari 3、4b 和 Opera、OmniWeb 和 Firefox 中有效,但在任何 IE 版本中均无效。但即使在工作浏览器中,我也会收到以下错误,我无法破译。

也许在适当的时候——有了更多 Javascript 方面的经验——我将能够,但现在我想我会问你们中的一些人,在 SO。

以下是我在 IETester 测试 Interet Explorer 6,7 和 8 页面时得到的错误弹出窗口: IE Error Pop Up

以下内容来自 Firefox 3.0.6 的 Firebug 控制台: Firebug Console Log

网站是: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,但在其余部分有效。也许你们有一个想法。我很想听听他们的声音。

感谢阅读。珍妮丝

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'

最佳答案

我同意 tvanfosson 的观点——你得到这个错误的原因很可能是因为你在页面加载完成之前调用了 init(),所以 document.body 尚未定义。

在您链接的页面中,您应该将以下代码移动到页面底部(就在结束 html 标记之前:

<script type="text/javascript">
FLIR.init({ path: 'http://www.457cc.co.nz/facelift-1.2/' });
FLIR.auto();
</script>

更好的是,您应该将初始化附加到文档的 ready 事件。如果你这样做,甚至不需要将你的 javascript 移动到文件的底部。使用 jquery:

$(document).ready( function(){
FLIR.init({ path: 'http://www.457cc.co.nz/facelift-1.2/' });
FLIR.auto();
});

More on jquery's document.ready event »

关于Javascript:错误 'Object Required'。我无法破译它。你可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com