"clickListener"関数を実行した後、変数の値を "クリック"する方法を教えてください。これは間違いなく「クリックされた」変数のスコープに関する問題です。addEventListenerの変数値を取得する
var clicked = 'no';
focus();
listener = addEventListener('blur', clickListener);
function clickListener(){
if(document.activeElement == document.getElementById('someIframe')){
clicked = 'yes';
console.log(clicked);
}
};
私はこれを実行するたびに、コンソールログ「はい」が、クリックが発生した後、私は、変数をチェックするとクリックした「outterは」いいえ、まだです。ここで
は私の問題のJSFiddleです:DIVの https://jsfiddle.net/6c3nbpk5/4/
- オープンコンソール
- 注意状態 "メッセージ"( 'クリックされていない')
- クリックして、それのiframe内
- コンソールに「Divメッセージ:クリック済み」と表示されることをご確認ください。
- コンソールによって確認されたクリックに更新する必要があります。
- 注意Divの "message"はまだ表示されません。
クリックすると更新するにはdivMessageが必要です。しかし、これはすべて複数のiframeを追跡する関数内にあり、変数をウィンドウに追加することはできません。
「クリック」リスナーは、クリックイベントにバインドされていません。しかし、とにかく、イベント後に変数をチェックするにはどうすればいいですか? – nnnnnn
'clicked'を' window.clicked'で置き換えてみてください。 –
これはiframeのクリックをチェックしているからです。クリックリスナーをiframeに割り当てることはできません。代わりに、フォーカスの最後の要素を探してからiframeをクリックした後に新しいタブが表示されます。 –