1
我正在修復編輯器,並突出顯示文本問題。突出顯示文本問題
我得到這個代碼,檢查你有什麼用戶突出顯示(下面的代碼中詳細介紹):
function getSelectionHTML()
{
var iframe = document.getElementById(theEditorID);
var win, doc = iframe.contentDocument;
if(doc)
win = doc.defaultView;
else
{
win = iframe.contentWindow;
doc = win.document;
}
var userSelection;
if(win.getSelection)
{
userSelection = win.getSelection();
if(userSelection.getRangeAt)
var range = userSelection.getRangeAt(0);
else
{
var range = document.createRange();
range.setStart(userSelection.anchorNode, userSelection.anchorOffset);
range.setEnd(userSelection.focusNode, userSelection.focusOffset);
}
var clonedSelection = range.cloneContents();
var div = document.createElement('div');
div.appendChild(clonedSelection);
callIcons(div.innerHTML);
}
else if(doc.selection)
{
userSelection = document.selection.createRange();
callIcons(userSelection.htmlText);
}
};
當用戶突出顯示一些大膽的文字和其他一些斜體文字,我得到這樣的輸出:
<b>some text</b><i>some other text</i>
但是,當用戶只突出粗體文字我得到這個輸出(沒有「大膽」標籤):
some text
您可以在此查看,直播 - http://brownfolder.com/06/ 突出顯示一些文字後,您會看到提醒。
你有什麼想法我該如何解決這個問題?
在此先感謝。
可能更容易使用像閉包一樣的範圍庫:http://code.google.com/p/closure-library/source/browse/trunk/closure/goog /dom/range.js?r=2 – Annie 2011-02-23 02:55:47