Iframeが埋め込まれた親ドキュメントがあります。 iframe内にアップロードフィールドがあります。ユーザーがアップロードするファイルを選択したら、jQuery変更イベントをトリガーします。そのイベントで、親ウィンドウで変数をtrueに設定して、アップロードが開始されたことを親が認識できるようにします。
誰もこれを行う方法を知っていますか?
これを試していましたが、機能しませんでした:
var test;
$("#newsletter_email").change(function() {
parent.window.test = true;
});
$('#send').click(function() {
if (test) {
alert('File has been uploaded!');
} else {
alert('You need to upload a file');
}
});
グローバルスコープ内の変数は、それらを含むwindow
オブジェクトのDOMプロパティとして自動的に公開されます。
この意味は
var foo = 'bar';
に似ています
window.foo = 'bar';
つまり、参照を取得できるanywindow
オブジェクトのグローバルスコープを読み取ることができます。ここで暗示できるのは、window
の使用が暗黙であることです。 「window。」と明示的に入力しなくても、とにかくそこにあります。
また、フレーム自体は()現在のwindow
オブジェクトのDOMプロパティとして自動露出されるため、他のフレームのwindow
オブジェクトにもアクセスできることを意味します。
parent
オブジェクトのwindow
プロパティは、そのウィンドウの親(存在する場合)のwindow
オブジェクトへの参照を保持します。 iframeには必ず親ウィンドウがあるため、ここで入力したものはすべてこれに要約されます
// set the global variable 'foo' in the parent global scope
parent.foo = 'bar';
メインドキュメントとiframeの両方が同じドメインを共有している場合、localStorageに保存して読み書きすることもできます。