我試圖追加一個<a>
標籤進入選定的文本,當用戶右鍵單擊it.i搜索堆棧,沒有找到匹配。追加東西到選定的文本與jQuery
0
A
回答
4
可靠地處理選定的文本是一個棘手的跨瀏覽器。 Tim Down的圖書館Rangy可以在那裏很有用,他對許多瀏覽器的特質進行了平滑處理。 (即使您不想使用該庫,也可以學習該技術。)
其中一個core Rangy demos是使用the RangyRange#surroundContents
method圍繞具有元素的選定文本。對於在演示的代碼看起來是這樣的:
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);
}
}
}
}
你會做大致相同,但有一個a
而不是span
。
1
EDIT
注意到你所說的文字太晚了。
也許你可以檢查document.elementFromPoint,只支持FireFox我認爲。
您正在尋找這樣的事情:
HTML:
<div id="rightclick">
Right Click me:
</div>
的Javascript:
$("#rightclick").mousedown(function(e) {
if (e.which === 3) {
$(this).append("<a href='http://www.google.com'>Link</a>");
}
});
相關問題
- 1. HOWTO追加東西的空體與jQuery
- 2. 的jQuery尋找的不是別的東西「追加」
- 3. 添加類和其他東西到你追加的html元素?
- 4. jQuery的:東西
- 5. jQuery選擇是查找其文本沒有的東西
- 6. jQuery的屬性「[東西* =東西]」選擇在純JavaScript
- 7. 爲什麼jQuery追加東西到我的AJAX請求的末尾?
- 8. 檢查jQuery中的URL參數,並追加一些東西到url
- 9. 文本追加到使用jQuery
- 10. JQuery追加到文本框時鍵入
- 11. c#在文本中找到東西
- 12. 將東西添加到隱藏文件
- 13. jquery:包含東西或其他東西
- 14. 拆卸/追加選擇選項與jQuery
- 15. 追加東西放到內部列表嵌套列表內
- 16. jQuery追加文本格式
- 17. 追加與jQuery
- 18. 添加東西到UIPopoverController
- 19. Android暫停線程,但添加到文本視圖的東西
- 20. 追加與jQuery的
- 21. 與MySQL的東西
- 22. 如何選擇特定的東西,如果選擇了隨機的東西?
- 23. JQuery - 綁定/追加到document.ready
- 24. 追加到文本文件
- 25. 動畫/添加效果的東西? JQUERY
- 26. jQuery追加和預先選擇一些文字到textarea上選定的文字
- 27. 追加基本目標HTML與jQuery的
- 28. 如何使用jQuery將文本追加到文本框的值?
- 29. 追加文本到jquery問題的文本區域
- 30. jQuery ..如何將文本追加到現有文本的末尾?
+1真棒的東西! – gideon 2012-02-15 08:58:01
幹得不錯,但有沒有解決方案可以做到這一點沒有插件? – bizzr3 2012-02-15 10:01:12
@bizzare:正如我上面所說的,如果你不想按原樣使用Rangy,你仍然可以研究Rangy如何使用這些技術。看看'getSelection'和'surroundContents'是如何工作的。這是Tim做出[Rangy開源](http://code.google.com/p/rangy/source/browse/trunk/src/#src%2Fjs%2Fcore)的快樂,而不是混淆它。 – 2012-02-15 10:08:57