ユーザーが右クリックしたときに選択したテキストに<a>
タグを追加しようとしています。スタックを検索して一致するものが見つかりませんでした。jqueryで選択したテキストに何かを追加する
0
A
答えて
4
選択したテキストを確実に処理するのは、少し面倒なクロスブラウザです。ティムダウンの図書館Rangyはそこでは役に立つかもしれませんが、彼は多くのブラウザの特質の上で滑らかです。
core Rangy demosのうちの1つは、選択されたテキストを要素で囲みます(the RangyRange#surroundContents
methodを使用しています)。デモではそのためのコードは次のようになります:あなたはずっと同じことをやってますが、a
はなくspan
とされると思い
function getFirstRange() {
var sel = rangy.getSelection();
return sel.rangeCount ? sel.getRangeAt(0) : null;
}
function surroundRange() {
var range = getFirstRange();
if (range) {
var el = document.createElement("span");
el.style.backgroundColor = "pink";
try {
range.surroundContents(el);
} catch(ex) {
if ((ex instanceof rangy.RangeException || Object.prototype.toString.call(ex) == "[object RangeException]") && ex.code == 1) {
alert("Unable to surround range because range partially selects a non-text node. See DOM Level 2 Range spec for more information.\n\n" + ex);
} else {
alert("Unexpected errror: " + ex);
}
}
}
}
。
1
EDIT
選択したテキストについて少し遅れて話していたことに気付きました。
おそらくdocument.elementFromPointを確認できますが、FireFoxでのみサポートされていると思います。
あなたはこのような何かを探しています:
HTML:
<div id="rightclick">
Right Click me:
</div>
Javascriptを: http://jsfiddle.net/BgW7x/2/
関連する問題
- 1. 「選択したテキスト」アクションメニューに追加する
- 2. jQuery選択したタブにクラスを追加する
- 3. 選択メニューでオプションを選択するときにを追加します。JQuery
- 4. UWP WebView:選択したテキストにタグを追加
- 5. jQueryの選択に要素を追加
- 6. テキストでルートノードを選択し、子を追加します。
- 7. jQuery Ui Calendar、選択した日付にリンクを追加できますか?
- 8. ドロップボックスでotherを選択したときにフォームに追加するJquery
- 9. jqueryでオプションを追加した後に選択ボックスで最初のオプションを選択する方法
- 10. jqueryを使用して選択ボックスリストにオプションを追加する
- 11. jQueryでテキストを選択
- 12. 選択したテキストに接頭辞と接尾辞を追加するには
- 13. 選択したモジュールをアングルアプリに追加
- 14. 選択した項目を選択したフィールドに追加する方法
- 15. jqueryオートコンプリートに選択した項目にタグを追加するには?
- 16. TextViewに追加するテキスト行ごとに色を選択できますか?
- 17. jqueryモバイルでポップアップを選択するカスタムボタンを追加する
- 18. jQueryマルチ選択ドロップダウンで最初に選択した子にのみ追加する
- 19. React:選択したオプションのテキスト入力ベースの追加/変更
- 20. jQueryが選択したアービトレーションを使用して選択ボックスにオプションを追加する
- 21. 選択した複数のJQueryプラグインに動的にオプションを追加する
- 22. Meteor - 選択したフォームからコレクションにオブジェクトを追加する
- 23. ドロップダウンから値を選択してテキストボックスにテキストを追加する
- 24. Quillでテキストの選択/クリックにカスタムdivを追加しますか?
- 25. jQueryを使用して追加ID属性を選択する
- 26. AngularJS選択を開始して終了するには、テキストを選択してhtmlを追加します。
- 27. 値の隣にある選択タグの中にテキストを追加
- 28. jqueryの範囲に選択範囲を追加します
- 29. コンボボックスで最後に追加したリストアイテムを選択する
- 30. jqueryでチェックボックスが選択/選択解除されたときにテーブルにtrを追加/削除する方法
+1素晴らしいもの:
はデモを参照してください! – gideon
いい仕事ですが、プラグインなしでこれを行う方法はありますか? – bizzr3
@bizzare:私が上で述べたように、あなたがRangyをそのまま使用したくないなら、あなたはRangyがそれをやっている方法を研究し、その技術を適用することができます。 'getSelection'と' surroundContents'がどのように動作するかを見てください。これは、[Rangyオープンソース](http://code.google.com/p/rangy/source/browse/trunk/src/#src%2Fjs%2Fcore)を作成したTimの喜びであり、難読化していません。 –