0

私は動作している次のコードを持っています

var exif = function(exifObject) {
    alert(exifObject.Orientation);
}

$(this).fileExif(exif);

問題は、行の後に警告された値が必要なことです$(this).fileExif(exif)

だから私は次のことをやってみました:

function getOrientation(exifObject){
    return(exifObject.Orientation);
}
getOrientation($(this).fileExif());

それは動作しません。行の後にアラート値を取得するにはどうすればよい$(this).fileExif(exif)ですか?

追加情報

console.log(exifObject)属性の配列 fe を持つオブジェクトを返しますOrientation

$(this)このコードでラップされています:

$('body').on('change', '#imgFile', function(event) {

入力タイプのファイルです。

4

2 に答える 2

0

exif関数である を関数に渡していfileExifます。これは、関数が JavaScript の第一級オブジェクトであり、この場合exifは「コールバック」関数であるという事実の例です。つまり、fileExif関数が終了すると、その結果が関数に渡されexif、呼び出されます。

実行に関してはalert、関数の後に呼び出されfileExifます。ただし、どうしても関数の後にコードを記述したい場合は、渡すときに関数を宣言できます。

$(this).fileExif(function(exifObject) {
    alert(exifObject.Orientation);
});

ただし、これはおそらくオリジナルほど明確ではありません。

于 2013-03-31T09:33:53.983 に答える
0

jQuery 用の fileExif プラグインは 1 つしか見つかりません。ここにソースがあります。このプラグインは、ネイティブのFileReaderを使用します。FileReader はファイルを非同期にロードします。あなたには2つの方法があります。まず、プラグイン コードを変更して同期させます (悪い考えです)。asyncn スタイルでコードを記述します (ベスト プラクティス)。

于 2013-03-31T09:40:10.343 に答える