既存のHTMLドキュメントを取り出して表示するAngularアプリケーションを作成しています。ハンドラーを既存のHTMLにフックアップする方法
サービスを使用して、既存の大量のドキュメントを(第三者から)取り出し、パネルに表示します(innerHtml
バインディングを使用)。
<div class='legal-doc-panel' [innerHtml]='doc'></div>
期待どおりに動作します。
私が作成しているアプリケーションは、既存のドキュメントに追加情報を追加します。
ユーザーが「読み込まれた」HTMLのさまざまな要素をマウスオーバーまたはクリックして別のパネルに追加のコンテンツを表示すると検出したいと考えています。
私は、ページに(innerHtml
を介して)持ってきて、それらに応答するいくつかの要素のためにマウスハンドラーをフックしたいと思います。
これを行うにはどのような方法がお勧めですか? 何か提案がありがとうございます。
ご提案ありがとうございます@Mick。あなたの提案が私がしようとしていることを達成するのに役立つとは思わない。カスタムイベントを起動する必要はありません。私は制御しないhtmlの部分(特定のHTML要素をページにインポートしたもの)から特定のhtml要素を介してブラウザイベント(クリックイベント)を検出するだけで済みます。また、私はinnerHtmlに表示されるコンテンツを制御しません。法的文書のスニペットをHTMLとして提供するサードパーティのサーバで、自分のサーバからの情報(JSONデータを返す)を補うものです。 – raduw
ホスト上のイベントだけを聴くことができます。あなたのinnerHtmlのイベントにフックし、あなたが上記のようなコンポーネントと同様にそれらをホストに放出するために、Angularの外にチャンスだけがあります。 – Mick
コンテンツを知っているなら、もちろんネイティブJavaScriptを使うことができます。 innerHtmlを配置すると、要素を検索し、コンポーネント内からイベントを聴くことができます。すべてのonChangeに対してaddEventListener()を使用しないように注意してください。私はこれを追加するために私の答えを編集しました。 – Mick