私は、Webベースの注釈ツールを構築しています。ここで、エンドユーザーはHTMLドキュメントからテキストのセクションを選択して注釈を付けることができます。選択されたテキストとそれに対応する範囲にプログラム的に話したり、アクセスして作業することは、 "window.getSelection"と "getRangeAt"を使って簡単です。複数のテキスト選択をブラウザでサポートするにはどうすればよいですか?
しかし、このすべてをクロスブラウザアプリケーションにまとめようとすると、問題が発生しています。 Safariでは、HTMLボタン(「注釈」ボタン)をクリックすると、ボタンをクリックしてもテキストキャレットの位置が変わったように、現在のユーザーのテキスト選択が消えてしまうことに気付きました。 window.getSelectionにアクセスしようとする私のコードはこのボタンのスクリプトから実行され、そこに選択が存在しないことが報告されます。
Google Docs、特にワードプロセッシングアプリケーションがこれを処理する方法を掘り下げ、本質的にテキストを選択し、 "太字"または "フォントの変更"をクリックする動作と仕組みが注釈機能に対応しています。 Googleドキュメントでは、編集するドキュメントのテキストをiframeに読み込みます。このことを巡って、Firefoxは、複数のフレームまたはiframeを含むWebページで複数の選択範囲をサポートしていることを知りました。言い換えれば、ベースページのテキストのセクションと、最初の選択がなくなるiframe内のテキストの別のセクションを選択できます。このGoogle Docsソリューションは、FirefoxとSafari(私が興味を持っている2つのブラウザ)の両方で動作します。しかし、このソリューションをテストするための簡単なサンプルページを作成したとき、Safariでは動作しませんでした。ボタンをクリックするか、ルートページ(iframeの外側)でテキストを選択すると、現在選択されているiframeが消えます。
誰かがこれを機能させるためにここで行方不明を知っていますか?または、これを動作させる別の方法を提案してください。
あなたはこのリンクをどこかに持っていますか? – Jack