javascriptを段落の選択したテキストのウェブページ
-
21-08-2019 - |
質問
ストテキスト、という点を考えると、段落を選択したテキストが存在しています。
var select = window._content.document.getSelection();
任意のポインタをかけます
解決
これは実際に困難だからだを考える事例:
- の選択の内部に置くことはできません項(easy);
- 全体の選択が一段落(easy);
- 全体の選択を横切り同項(にく);
- の選定を開始または終了要素の内部に置くことはできません項(にく);
- の項張して異なるレベルの例は以内のリストの項目が二人の兄弟ウィジェットのリスト(つもり);や
- 一部組み合わせる。
まずきによって決め完了したいのです。ょっとだけカバーを最も簡単な場合の(1)及び(2).
function getSelectedParagraphText() {
if (window.getSelection) {
selection = window.getSelection();
} else if (document.selection) {
selection = document.selection.createRange();
}
var parent = selection.anchorNode;
while (parent != null && parent.localName != "P") {
parent = parent.parentNode;
}
if (parent == null) {
return "";
} else {
return parent.innerText || parent.textContent;
}
}
注意: いのタグも交換textContentとinnerHTML.
編集: うううううううううううううううけど、より良いブラウザに対応しています。
他のヒント
私はこの便利なの例を見つけます。
他の人がdocument.getSelectionをサポートしながら、())いくつかのブラウザはwindow.getSelectionを(サポートしているようです。例では、すべてのこれらのケースを処理します。
select.anchorNode.parentNodeは、あなたの場合には、
このタグを親ノードを返します、あなたはそのノードのテキストを取得することができます。
var x = window.getSelection()
var z = x.anchorNode.parentNode
alert(z.innerHTML)
あなたはdocument.getSelectionがFirefoxで減価償却されるだけでなくので)window.getSelection(見ていることを確認します。
$.event.props.push('onTextSelect');
$(document).click(function(){
var str=window.getSelection().anchorNode.data;
var str=str.substring(window.getSelection().anchorOffset,window.getSelection().focusOffset);
if(str)
$(window.getSelection().focusNode.parentNode).trigger({type:'onTextSelect',text:str});
});
$('p').on('onTextSelect',function(e){
console.log($(this).attr('class'))
$('p:last').text(e.text);
});
HTML
<div><p class="p">some text</p></div>
<p></p>
現在のページ https://jsfiddle.net/q9nkc0fd/6/ の<フィドルを見つけることができます/ P>
新しいプロジェクトをjsmatitaから生まれています。 http://takenotes.sourceforge.net/する (それはイタリア語であります)。
所属していません StackOverflow