0

ナビアプリがあります。ページ Control に対応する js ファイルが存在します。プロジェクトの js フォルダーにある外部の js ファイルにアクセスしたい。で指定しました

commonFunctions.js

WinJS.Namespace.define(

'commonFunctions', {

        authenticate: authenticate

    });

PageControlのjs(page2.js)ファイルのメソッドにアクセスするとき

commonFunctions.authenticate();

エラーが発生します:

0x800a1391 - JavaScript ランタイム エラー: 「commonFunctions」が定義されていません

この例外のハンドラがあれば、プログラムは安全に続行できます。

これはこれを行う正しい方法ですか?または、何か不足していますか?

4

1 に答える 1

1

あなたが抱えている問題は、ロードしているページ内でスクリプト ファイルを参照していないか、commonFunctionsオブジェクトを関数でラップしていないことだと思います。

私はこれを試しました:script.js

(function () {
    WinJS.Namespace.define("CommonObject", {
        auth: function () {
            return true;
        }
    });
}());

default.js

    app.addEventListener("activated", function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                // TODO: This application has been newly launched. Initialize
                // your application here.
            } else {
                // TODO: This application has been reactivated from suspension.
                // Restore application state here.
            }

            if (app.sessionState.history) {
                nav.history = app.sessionState.history;
            }
            args.setPromise(WinJS.UI.processAll().then(function () {
                var test = CommonObject.auth(); // Comes out true and no exceptions
                if (nav.location) {
                    nav.history.current.initialPlaceholder = true;
                    return nav.navigate(nav.location, nav.state);
                } else {
                    return nav.navigate(Application.navigator.home);
                }
            }));
        }
    });

default.html

<script src="/js/script.js"></script>
于 2012-10-10T08:35:27.167 に答える