2

ウェブサイトの1つで「Facelift1.2」というJavaScriptを使用していますが、スクリプトはSafari 3、4b、Opera、OmniWeb、Firefoxで動作しますが、IEバージョンでは動作しません。しかし、動作しているブラウザでも、次のエラーが発生します。解読できません。

やがて、Javascriptの経験が増えると、私はできるようになりますが、今のところ、ここSOであなた方の何人かに聞いてみようと思いました。

以下は、Interet Explorer 6、7、および8のページをテストするIETesterで表示されるエラーポップアップです。 IEエラーポップアップ

以下は、Firefox3.0.6のFirebugコンソールからのものです。 Firebugコンソールログ

Webサイトは次のとおりです。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'
4

3 に答える 3

0

.net Framework v2をインストールして、問題を解決します。

于 2009-04-17T22:06:40.663 に答える
0

文脈のために残された回答を編集します。正しい解決策については、@Triptych の (承認された) 回答を参照してください。

私の提案は、javascript の組み込みをマークアップの最後に移動することです。DOM が完全にロードされる前にコードが実行されているため、maxHeight スタイル プロパティを決定する際に参照しようとすると、document.body が null になることが起こっていると思います。javascript をマークアップの末尾に移動するだけで、少なくともドキュメントの本文が読み込まれ、この特定のエラーを回避できるようになります。

 ... rest of html....

    <script type='text/javascript'
            src='http://www.457cc.co.nz/facelift/flir.js'>
    </script>
 </body>
 </html>
于 2009-02-26T21:11:05.613 に答える