2008-08-13 88 views
10

我想在我的基於瀏覽器的應用程序中做的事情之一是允許用戶選擇一些文本(不在<textarea>,只是普通的ol文本!),並讓我的應用程序彈出一個小工具欄,然後可以與下一個交互(在我的情況下,添加註釋)。在瀏覽器中獲取選定的文本,跨平臺

我發現了很多關於谷歌的東西,這似乎是專注於寫所見即所得的編輯器,但是這不是我想要的,而且大部分工作在IE,但不是FF2或3。理想的情況下,我想一些功能,可以在在IE7(6如果可能的話)的作品的瀏覽器窗口中返回當前選定的文本,火狐2 & 3和Safari 2。如果它在Opera中有效,那會是一種獎勵,但這不是必需的。

任何人都有,做這樣的功能?或者從哪裏開始?

回答

1

Introduction to Range對瀏覽器有什麼不同給你訪問的文本選擇的一些細節。

我的經驗是,這些不同的API直接工作是相當笨拙,所以如果wrapSelection作品你,我會與該走了。

-3

此代碼工作在Safari,IE和Firefox - 希望它有一定的幫助

var str = (window.getSelection) ? window.getSelection() : document.selection.createRange(); 
str = str.text || str; 
str = str + ''; // the best way to make object a string... 
14

這jQuery插件是很酷,但它實現了一個非常具體的任務:換了一個代碼突出顯示文本。這可能正是你想要的。但是,如果你不希望(或者是在一個情況下,你不能)任何多餘的標記添加到您的網頁,你可以嘗試以下方法,而不是:

​​3210

該函數返回代表一個對象文本選擇。它適用於各種瀏覽器(儘管我懷疑它返回的對象會因瀏覽器而略有不同,並且只能依賴結果的實際文本而不是任何附加屬性)。

注:我最初發現的代碼片段在這裏:http://www.codetoad.com/javascript_get_selected_text.asp

+0

你需要調用`的toString()`。 `getSelection`返回Selection對象。經鉻測試。 – jcubic 2014-02-17 12:15:27