問題タブ [getselection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - クロスブラウザで複数のテキスト選択をサポートするにはどうすればよいですか?
エンドユーザーがHTMLドキュメントからテキストのセクションを選択して注釈を付けることができるWebベースの注釈ツールを構築しています。プログラム的に言えば、「window.getSelection」と「getRangeAt」を使用すると、選択したテキストと対応する範囲にアクセスして操作するのは簡単です。
しかし、クロスブラウザアプリケーションでこれらすべてをまとめようとすると、問題が発生します。Firefoxではすべてが機能しますが、Safariでは、HTMLボタン(つまり「注釈」ボタン)をクリックすると、ボタンをクリックするとテキストケアレットの位置が変更されたかのように、現在のユーザーテキストの選択が消えることにすぐに気付きました。window.getSelectionにアクセスしようとする私のコードは、このボタンのスクリプトから実行され、選択が存在しないことを報告します。
基本的に、テキストを選択して[太字]または[フォントの変更]をクリックする動作とメカニズムは注釈機能に対応しているため、Googleドキュメント、特にワープロアプリケーションがこれをどのように処理するかを掘り下げて調べました。Googleドキュメントでは、編集するドキュメントのテキストをiframeに読み込みます。これをいじってみると、Firefoxは、複数のフレームまたはiframeを含むWebページで複数の選択範囲をサポートしていることがわかりました。つまり、ベースページでテキストのセクションを選択し、最初の選択が消えることなくiframeでテキストの別のセクションを選択できます。このGoogleDocsソリューションは、FirefoxとSafari(私が興味を持っている2つのブラウザー)の両方で機能します。しかし、このソリューションをテストするための簡単なサンプルページを作成した場合、Safariでは機能しませんでした。
これを機能させるために私がここで欠けているものを誰かが知っていますか?または、これを機能させるための別の方法についての提案がありますか?
javascript - 別のフレームから選択したテキストを取得する
あるフレームのボタンをクリックして、別のフレームで選択したテキストで何かを実行できるようにしたいフレームセットがあります。のボタンframe[0]
は、次の JavaScript を呼び出して、選択したテキストを から取得しますframe[1]
。
問題は、 のボタンをクリックするだけでframe[0]
のテキストが選択解除されframe[1]
、getSelection
空の文字列が返されることだと思います。これについて何ができますか?
javascript - 外部ドメインで Javascript を使用して Iframe にアクセスする
IFRAME 上のページの読み取り専用プロパティにアクセスする方法を探しています。具体的には、セレクションを読みたいと思います。ドキュメントが別のドメインにあるため、どうやら読めません。
それらを読む方法はありますか?
javascript - カーソル/キャレットの位置を設定する最良の方法は何ですか?
TinyMCE が選択したテキストエリアにコンテンツを挿入する場合、カーソル/キャレットの位置を設定する最良の方法は何ですか?
を使用tinyMCE.execCommand("mceInsertRawHTML", false, content);
してコンテンツを挿入していますが、カーソル位置をコンテンツの最後に設定したいと思います。
document.selection
とはどちらもmyField.selectionStart
機能しません。これは TinyMCE によって (フォーラムで見つけることができないものを通じて) サポートされるか、本当に醜いハックになるように感じます。
後で:良くなります。WordPress に TinyMCE をロードすると、エディタ全体が埋め込まれた iframe にロードされることがわかりました。
後で (2):選択を文字列として取得するために使用できますdocument.getElementById('content_ifr').contentDocument.getSelection();
が、使用できる選択オブジェクトではありませんgetRangeAt(0)
。少しずつ前進中。
html - xul-選択HTMLを取得
Web ページでユーザーが選択した領域の HTML を取得することになっている次の関数があります。この機能は正しく動作していないようです。
時々、選択されていないhtmlも取得します。
誰でもこの機能を調べてもらえますか? - どうもありがとう。
//----------------------------選択した HTML を取得する----------------- -------
関数 getSelectionHTML(){
}
javascript - getSelection() および insertNode -- Javascript テキスト選択
ブラウザの選択を新しく/個別に作成された範囲に設定する方法を知っている人はいますか? ブラウザーからテキストの選択範囲を取得する方法と、範囲を作成する方法は理解していますが、選択範囲を作成した範囲に変更するようにブラウザーに指示する方法がわかりません。「setSelection」のようなものだと思っていたでしょう。
明確にするために、テキストエリアを選択させようとしているわけではありません - p / div / ul タグなどについて話しているのです。
私は次のサイトを参照していました(多分それはあなたにアイデアを与えるでしょうか?):
http://www.quirksmode.org/dom/range_intro.html
お時間をいただきありがとうございます。
iphone - getSelection() for iPhone ブックマークレット
私は少し調査を行いましたが、iPhone ブックマークレットで getSelection() を介して現在選択されているテキストを取得することに関する決定的な答えを見つけることができないようです。これはまだ可能ですか?さまざまな検索から、同様の動作を使用する利用可能なブックマークレットが多数あるようですが、どれもうまくいかないようです。
iPhone でテキストを選択し、ドラッグ可能なボックスが ([コピー] ボタンと共に) 表示されるのを待ってから、MobileSafari の [ブックマーク] アイコンをタップして、選択したブックマークレットを選択します。
現在選択されているテキストを取得するには、次のようにしています。
encodeURIComponent(
window.getSelection ? window.getSelection()+'' :
(document.getSelection) ? document.getSelection()+'' :
(document.selection ? document.selection.createRange().text+'' : 0)
)
誰もこれについて経験がありますか?
javascript - javascriptで2つのDOMノードの最初の共通の親を見つける最良の方法は何ですか?
私の質問はまさにそれですが、コンテキストで選択オブジェクトを調べ、anchorNodeとfocusNodeを比較し、それらが異なる場合は、最初の共通の親要素を見つけます。
jquery - ダブルクリックまたは手動選択による getSelection() は同じではありません
選択の親を返す関数に少し問題があるため、質問させてください。
たとえば、「猫は<strong>
灰色</strong>
です」という文を使用します。
「グレー」という単語を手動で選択してボタンをクリックすると、関数は[object HTMLSpanElement]を返します。
しかし、ダブルクリックして同じ単語を選択すると、関数は[object HTMLParagraphElement]を返します。
なぜなのかご存知ですか ?
どうもありがとう。
javascript - 複数のタグにまたがる getSelection & SurroundContents
選択したテキストの背景色を変更するスクリプトがあります。ただし、テキストが複数の要素/タグにわたって選択されていると、問題が発生します。
私が持っているコードは次のとおりです。
出力されるエラーは次のとおりです。
これは getRange() 関数に関係していると思いますが、私は JavaScript の初心者であるため、どのように進めればよいかわかりません。
私が達成しようとしていることを再現できる他の方法はありますか?
どうもありがとう。