Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

Creating a pop-out iframe with adoptNode and "magic iframes"

Paul Kinlan

更新:10月8日-このドキュメントに関する重要な問題。 私はこの投稿についてJake Archibaldに追いつきました。何か新しいものがあると思ったからです。会話の中で、この投稿の一部を無効にする多くのことを発見しました。また、ほとんどの開発者が知っています。 .append()と.appendChild()を呼び出すと、ノードが採用されます。これにより、append Algorithmによりノードが確実に採用されるため、このインスタンスでのadoptNodeの使用は役に立たなくなります。これはMDNドキュメントでは言及されていませんでしたが、 specます。前に戻って問題を解決する必要があるのですが、 DocumentFragmentを追加しようとしていたためだとDocumentFragmentます。これは、 w.document.body.appendChild(document.adoptNode(airhornerIframe));とw.document.body.appendChild(airhornerIframe);両方が同じ効果を持つことを意味します。 DOM要素は状態を保持しますが(カスタム要素を確認します)、iframeがDOM内で移動されると、再読み込みされます。期間。つまり、iframe間で移動しても、最初にテストしたような状態が維持されないということです。これは、SWがページを非常に速くロードしたためだと思います。ポータルAPIはこれによる影響を受けない可能性があります。したがって、将来このエクスペリエンスは機能するはずです:) ドキュメント間で要素を移動するという概念は依然として有効で興味深いものですが、iframeの利点はそこにはありません。ウィンドウ間を移動するとビデオ要素がリセットされることに気づきました。iframeが実際に状態をリセットしなかったことを確認するためにもっと熱心にすべきだったはずです。 いつものように、 commit history for this postを見ることができます。 元の投稿2010年にGoogleに入社したとき、「 magic iframes 」というGmailの概念に言及したドキュメントに出くわしました。クールな名前が付けられ、概念は斬新でした。 Targeted at apps with multiple windows All code and data go into an IFRAME If window hosting the IFRAME unloads, it gets adopted by another of the windows In Gmail for example: Tearoff / pop-out compose creates bare window that is filled by code in IFRAME in main window If you close the main window, the code looks for a tear-off that can accept the IFRAME and moves it You finish your compose and can still send the email Old way: create new instance of Gmail tailored to the task.

Read More