0

私はWebベースのコードエディタを構築していて、フォーカスの処理に問題が発生しました。すべてのエディターインスタンスでiframeに移行する必要があることは明らかです。ただし、この場合、JavaScriptのプロトタイプベースの継承を使用できるかどうかはわかりません。

基本的に、プロトタイプ定義を含めるためのスクリプトを含める必要があり、特定のiframeを提供するすべてのオブジェクトがこの単一のプロトタイプを使用します。

この時点から、私には2つのアイデアがあります。

  1. iframeを提供するオブジェクトは、トップウィンドウでホストする必要があります。
  2. iframeを提供するオブジェクトは、子iframeのウィンドウでホストする必要があります。

この状況に対処するための最良の方法は何ですか?JavaScriptのコンテキスト境界を正しく処理する方法がわかりません...

4

1 に答える 1

1

それはできます。多少の作業が必要で、ソースにいくつかの変更を加える必要がある場合があります。

まず、どのコードでも window.document を使用しないようにする必要があります。複数のドキュメントを扱っており、ノードを共有できません。ただし、[node].ownerDocument を利用することはできます。そうすれば、クロスフレームで安全なノードのやり取りができます。これまで CodePress を使用したことはありませんが、このようにフレーム間で機能しなくても驚かないでしょう。

また、IE とオブジェクト/関数のクロス フレームにはいくつかの問題があります。私が思い出したように、関数がオブジェクトに変換されてから実際に呼び出すことができない場合があり、それを検出するには、toString を使用して "[object Object]" に分割する必要があります。

于 2010-12-18T13:48:31.533 に答える