2012-05-12 42 views
0

我正在爲其中的一個項目獲取iframe中的選定文本所選文本本身可以跨iframe中的多個跨度我不需要獲取文本本身,但我需要知道跨越文本的跨越,所有跨度的ID都是1〜直到頁面結尾,所以它們都可以通過id屬性訪問,我需要的是獲得所選文本跨越的跨度的所有ID,我看了看周圍的谷歌,但似乎並沒有找人同樣的問題JQuery如何獲取選定文本交叉的元素?

+0

不是一個*答案*,所以我會評論:跨瀏覽器的選擇是一個痛苦,推薦使用像Tim Down的[Rangy](http://code.google.com/p/rangy/)這樣的庫。 –

+0

我可以使用javascript window.getSelection得到選擇本身,但它只獲取選定的文本,如果我可以得到選定的文本,包括html本身,我的問題將被解決,因爲我可以解析結果來檢測開放標籤並獲取ID在他們之外,但我仍在研究它 – Ronin

+0

你用什麼JS代碼來獲取內容? – Arnaud

回答

0

以下是獲取的範圍的節點,將所有主要的瀏覽器工作,除了IE < 9的答案,但你必須先取得選定的範圍自己:

https://stackoverflow.com/a/7931003

對於一個跨瀏覽器的解決方案,你可以用我的Rangy庫如下,假設你有一個變量到iframe參考稱爲iframe

var sel = rangy.getIframeSelection(iframe); 
if (sel.rangeCount > 0) { 
    var range = sel.getRangeAt(0); 
    var spans = range.getNodes([1], function(element) { 
     return element.tagName.toLowerCase() == "span"; 
    }); 
    // spans is now an array of selected or partially selected <span> 
    // elements. Spans inside other spans are not included. 
} 
+0

謝謝,我會嘗試 – Ronin

相關問題