2

script タグを作成し、javascript をその .innerHTML に書き込むことで、いくつかの .js を動的にロードします。

次のエラーが表示されます。

SCRIPT1004: Expected ';' 
develop, line 1487 character 24

これは意味がありません...したがって、行番号が正しくまたは間違って報告されていると推測しています(少なくとも、失敗することなくここまでたどり着いたことをうれしく思います....1487は私のコード)。

Firefox は通常、正しい行を報告しますが、常に 1 行ずれています。私はIE9も同様だと思っていました...

どうすればトラブルシューティングできますか。私はすでにコードが jshint.com を通過することを確認しました;。もしそれが本当なら、Jshintはこれを捕まえたでしょう。

IE9ではほとんど盲目的に飛んでいます。

コードは次のとおりです。上に 10 行、下に 10 行あります。行 1487 はそのようにコメントされています。

    /**
     *Publik
     */

    var publik = {};
    publik.initMenu = function( )
    {
        top_element = document.getElementById( 'top_new' ); 
        bottom_element = document.getElementById( 'wrap_drop_down_new' );
        top_element.addEventListener( "mouseout", mouse_out, false ); 
        top_element.addEventListener( "mouseover", top_mouse_over, false ); // Line 1487
        bottom_element.addEventListener( "mouseout", mouse_out, false ); 
        bottom_element.addEventListener( "mouseover", bottom_mouse_over, false ); 
    };
    return publik;

}());
/*  Use this to create Event on completion of .js and remove cStart().

    var event_load_js = document.createEvent("HTMLEvents");
    event_load_js.initEvent( "blur", true, false );

Beat のリクエストごとに top_mouse_over を含むコード

/**
 *MMenu
 */

var MMenu = ( function () 
{
    /**
     *Private
     */

    var top_element,
        bottom_element,
        time_out_id = 0,
        TIME_DELAY = 1000;

    function showBottom()
    {
        top_element.style.border = '1px solid #cfcaca';
        top_element.style.borderBottom = '3px solid #cfcaca';
        bottom_element.style.visibility = 'visible';
    }
    function hideBottom()
    {
        top_element.style.border = '1px solid #faf7f7';
        bottom_element.style.visibility = 'hidden';
    }
    function top_mouse_over()
    {
        window.clearTimeout( time_out_id );
        showBottom();
    }
    function bottom_mouse_over()
    {
        window.clearTimeout( time_out_id );
    }
    function mouse_out()
    {
        time_out_id = window.setTimeout( hideBottom, TIME_DELAY );
    }
4

3 に答える 3

4

動的に生成されたコードをブラウザからコピーして Notepad++ に貼り付け、「?」を検索します。ユニコード文字があるかどうかを確認します。コンソールが真実を語っていないことは確かです。私もこれに遭遇したことがあります。

参照: https://stackoverflow.com/a/9246128/1220302

于 2012-07-13T17:14:40.797 に答える