1

こんにちは:私はhtml入力と選択を豊富なqx.ui.basic.Labelに追加しました。これらのhtmlコントロールにイベントハンドラーを正しく追加しました。私の問題はタブイベントにあります。htmlフォームコントロール内にいるとき、タブキーの押下はqooxdooによってインターセプトされ、フォーカスは次のqooxdooコントロールに移動します。正確には、ラベル内でフォーカスを維持し、ブラウザが次のhtmlコントロールにフォーカスを置くようにする必要があります。ドキュメントを読んで、私は試しました:qx.ui.core.FocusHandler.getInstance()。addRoot(label); 次に、タブキーを押してもラベルからフォーカスが外れませんが、ブラウザはラベルコントロール内でフォーカスを変更しません...何か提案はありますか?

4

1 に答える 1

1

はい: 適切な qooxdoo フォーム ウィジェット (qx.ui.form.SelectBox など) を使用し、qx.ui.basic.Label を HTML 要素のコンテナーとして悪用するのをやめます。ラベル ウィジェットはその名前が示すとおり、多かれ少なかれ短いテキストを保持するウィジェットです。(これは実際にはダニエルの答えでした)。

編集(コメントに従って):

解析に関しては、ドキュメント要素を作成し、その innerHtml を生成された HTML に設定し、生成された DOM ツリーを通常の JS メソッドでトラバースすることで、ブラウザにそれをさせます。これにより、解析が簡単になります。

レンダリングに関しては、このツリーをトラバースし、途中で qooxdoo ウィジェットを生成する小さな DOM インタープリターを作成します。何を扱っているか (ラベル、テキスト ボックス、選択ボックス) を知っていれば、それほど難しくはないはずです。次に、生成されたウィジェットを適切なコンテナーに追加します。

于 2010-10-25T20:38:18.477 に答える