0

バージョン0.7.4(これも0.7.1 )のsammy.jsライブラリを 使用しているときに、ハンドラー関数の実行中にエラーが発生した場合、コンソールに何も出力されないことがわかりました。get

たとえば、次のコードスニペットでは、名前の付いた関数はnotExistingFunction存在しませんが、コンソールには何も出力されません。

<html>
    <head>
        ...
        <script src="/path/to/jquery-1.5.2.min.js"></script>
        <script src="/path/to/sammy-0.7.4.min.js"></script>
        ...
    </head>
    <body>
        <script>
            $(document).ready(function() {
                var sammy = Sammy(function() {
                    this.get('#someAnchor', function() {
                        // this function doesn't exist
                        notExistingFunction();
                    });
                });
                sammy.run();

                // this should lead to execution of above handler
                window.location.hash = '#someAnchor'; 
            });
        </script>
        ...
    </body>
</html>

これはページのトラブルシューティングを本当に複雑にします、誰かがこれも経験しましたか?これは予想される動作ですか、それともバグですか?これに対する回避策はありますか?

よろしくお願いします

4

1 に答える 1

1

思ったより簡単であることがわかりました-sammy.jsのソースを調べた後、エラー報告を管理するsomewhyraise_errorsフラグがデフォルトで設定されていることがわかりました。false

したがって、上記のコードの一部を次のように変更します。

<html>
    <head>...</head>
    <body>
        <script>
            ...
            sammy.raise_errors = true;
            sammy.run();
            ...
        </script>
    </body>
</html>

素敵なエラーが表示され始めます。

于 2013-03-20T10:54:06.963 に答える