私はこのウェブサイトとwordpressの機能に似た何かをしたいと思います。ユーザーが画面上のテキストを強調表示した後、ツールバーのボタンをクリックすると、テキストの周りにhtmlタグがラップされます。 jqueryではおそらく.wrapクラスを使用しますが、ユーザーが何かを強調表示した場合はどうすれば検出できますか?ユーザーが太字ボタンをクリック、それはその後、htmlとして<b>
タグに埋め込まれたテキストを追加し、<b>Hello World</b>
jsまたはjqueryを使用してツールバーボタンをクリックした後にhtmlタグをラップします
1
A
答えて
0
これは主に、(1)素子input/textareaのselectionStart
とselectionEnd
プロパティにアクセスし、(2)同じテキストにその範囲にわたってvalue
プロパティのサブストリングを置換する必要はなく、所望の開始タグと終了タグで包ん。また、置き換えられたテキストを再選択することが理にかなっていると思います。select()
とsetSelectionRange()
への2回の呼び出しが必要です。また、選択がない場合(startがendと等しいことを意味する)、何もしないことをお勧めします。
window.selWrapBold = function(id) { selWrap(id,'<b>','</b>'); };
window.selWrapItalic = function(id) { selWrap(id,'<i>','</i>'); };
window.selWrap = function(id,startTag,endTag) {
let elem = document.getElementById(id);
let start = elem.selectionStart;
let end = elem.selectionEnd;
let sel = elem.value.substring(start,end);
if (sel==='') return;
let replace = startTag+sel+endTag;
elem.value = elem.value.substring(0,start)+replace+elem.value.substring(end);
elem.select();
elem.setSelectionRange(start,start+replace.length);
} // end selWrap()
<input type="button" value="bold" onclick="selWrapBold('ta1');"/>
<input type="button" value="italic" onclick="selWrapItalic('ta1');"/>
<br/>
<textarea id="ta1"></textarea>
0
がテキストをラップしているhtml要素のテキストを取得すると言うだろう、その後Hello World
を書き込み、例えば
、 。
チュートリアルについては、jQuery DOM Manipulationを参照してください。
0
私が選択したテキストを取得するためにthis質問を使用。そしてthis質問に 選択したテキストの要素を取得します。私はそれらを単一の機能で組み合わせました。
function updateHighlightedText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
var node = $(window.getSelection().anchorNode.parentNode); //Get the selected node
node.html(node.text().replace(text, "<b>"+text+"</b>")); //Update the node
}
関連する問題
- 1. クリックして内部HTMLを変更し、JqueryまたはJSを使用してクリックを元に戻す
- 2. phpまたはjsを使用したクリック可能なhtmlボタンカウンター
- 3. テキスト内のリンクを見つけ、jqueryを使用してタグにラップします。
- 4. tinyMCEを使用してHTMLタグを削除しました
- 5. substr JQueryを使用してHTMLタグを返しますか?
- 6. PowershellオブジェクトをNode.JS/Electronに渡してHTMLタグでラップします
- 7. JQueryを使用して複数のHTML要素に要素をラップします
- 8. JQUERY html()またはappend()を使用して初めて使用した後にXMLデータにアクセスできない
- 9. regex(JS)を使用したコンテンツによるhtmlタグの検索
- 10. jqueryを使用してボタンをクリックしてhtmlファイルをロードする際に問題が発生しました
- 11. html Mustache.jsテンプレートを使用したJQueryラップ要素
- 12. クリックしてページをロードした後jquery
- 13. クリックした後にJSをレンダリングします
- 14. jsまたはjQueryを使用してHTML入力フィールドからスペースを%20に変換します。
- 15. jquery .html()または.replace()を使用してクリックしても動作しません。
- 16. JSまたはAJAXを使用したHTMLフォームPOST
- 17. jQueryを使用してクリックした後でリンクを無効にする
- 18. JS、PHPまたはHTMLを使用してHTMLページをリフレッシュする方法
- 19. jqueryを使用してfancyboxにimgをラップするタグをターゲットにする
- 20. js(またはjquery)を使用した絵文字ピッカーのフォーカス
- 21. <select>をクリックまたは変更した場合(jsまたはjquery)
- 22. jsまたはjqueryを使用して配列を繰り返し、htmlに追加する方が良い
- 23. HTMLタグを取得する方法Webページ上でhtmlをレンダリングした後、javaまたはjavascriptまたはxsltを使用して
- 24. jquery/jsを使用してフォームを送信した後に遅延ページリダイレクト?
- 25. HTML5 DoctypeタグとHTMLタグをHTMLファイルにまとめました
- 26. jqueryを使用してボタンをクリックした行を削除します
- 27. Jquery Cycleプラグインのタイムアウトは、クリックまたはホバーした後にスピードアップしますか?
- 28. jQueryを使用して既存のHTML要素の周りにHTML構造をラップします。
- 29. Javascriptを使用したサブストリングhtmlタグ
- 30. htmlタグを使用したIroin-ajaxレスポンス
これは役立つかもしれない: http://stackoverflow.com/questions/5001608/how-to-know-if-the-text-in-a-textbox-is-selected –