私はonfocus
イベントを使用するhtmlアプリケーションを持っています。これは、ブラウザのタブを切り替えるときに完全に機能しています。iframe(cross-origin)からonfocusイベントにアクセスする方法は?
他のHTMLページにiframe
としてそのアプリケーションを読み込むと、タブを切り替えるときにiframe
にフォーカスがないため、機能しません。 onfocus
イベントへのアクセス方法iframe
トップレベルコードの変更なし。
iframe
とiframeを読み込むページが同じ起源ではありません。
if (!window.parent.frames.length) {
window.onfocus = function() {
// do smth
};
} else {
// ???
}
設定方法を示す最小限のコードを記入してください。 – LGSon
iframeと親ドキュメントの起点が異なることがわかります。両方のドキュメント/起源のコンテンツを制御しますか? – pseudosavant
これは最低限のコードです。 イベント(ソケット)に基づいていくつかのアニメーションを行っていました。リアルタイムアニメーションでなければならないので、キューが必要でした。タブを切り替えるときに、キューがきれいになり、アプリがiframeでなければ動作していたはずです。しかし、それが 'iframe'のときは' onfocus'イベントが起きないのでキューをクリーンアップできませんでした。 @Amber de Blackの回答が私にとって解決策になるかもしれません。 –