1

Webサイトで、javascript関数を使用してファイルからオブジェクトをロードしたいと思います。最初はJSONを使用してみましたが、JavaScriptオブジェクトは複雑で、いくつかのパラメーターの関数があります。ファイルからオブジェクトをロードする方法はありますか?

myObject.js(関数があるため無効なJSON)

{
    "value1": "some value",
    "functionValue": function() { 
        return "function value"; 
    }
}

ファイルからオブジェクトをロードする関数

function getFileObject(fileURL) {
    var myObject;

    $.ajax({
        url: fileURL,
        type: "GET",
        datatype: 'json',
        async: false,
        success: function (result) {
            myObject = result;
        }
     });

     return myObject;
}
4

2 に答える 2

1

本当に関数の実装を渡す必要がある場合は、JSONを使用せずにテキストを評価してください。

function fetchFileObject(callback) {
    $.ajax({
        url: value,
        type: "GET",
        datatype: 'text',
        success: function (result) {
            var myObject = eval('('+result+')');
            callback(myObject); // do something  with myObject
        }
     });

}

しかし...それは私が自分で考えていることではありません。

を実際に使用するべきではないことに注意してくださいasync: false。現在は非推奨であり、使用する正当な理由はありませんでした。これが、コールバックを受け入れるようにコードをリファクタリングした理由です。

于 2012-09-28T10:29:22.033 に答える
0

を使用してmyobject.jsをインポートしようとしましたか

<script src = "myobject.js" type = "text / javascript" />

Webページのヘッダーにタグを付け、myobject.jsファイルのオブジェクトを他の.jsファイルで使用できる変数に割り当てますか?

これは単一のファイルで機能するはずです(私は自分でテストしていません)が、クライアント側でファイルを動的にインポートする場合は、@dystroyのソリューションの方が適している可能性があります。

于 2012-09-28T10:38:58.173 に答える