2011-03-21 53 views
0

在Adobe Flex 3中,這會導致問題。Flex 3 set使用htmlText選擇

textArea.setSelection(textArea.htmlText.indexOf('testString'), textArea.htmlText.indexOf('testString') + 10); 

這會將光標置於錯誤的位置,因爲indexOf會考慮到HTML標記,但setSelection不會。

任何人都知道如何做到這一點?一個簡單的方法是/ < [^>] *>/g正則表達式,但這不會每次都完成這項工作。

請幫忙!

安德魯

+0

如果你使用文本而不是htmlText怎麼辦? textArea.text.indexOf('testString')。理論上應該給你'setSelection'正在看的相同文本。 – JeffryHouser 2011-03-21 18:06:07

回答

0

試試這個:

textArea.setSelection(textArea.text.indexOf('testString'), textArea.text.indexOf('testString') + 10); 

通過使用替代 '的htmlText',你刪除HTML標籤的 '文本' 屬性。另外,我不會使用2個索引搜索,效率不高。試試這個:

var string:String = 'testString'; 
var index:int = textArea.text.indexOf(string); 
textArea.setSelection(index, index + string.length); 
+0

我不知道爲什麼,但Alert.show(textArea.htmlText)顯示正確的html文本,Alert.show(textArea.text)顯示一個空白字符串。 – andrewpthorp 2011-03-21 21:29:29

+0

將您的標記標記爲正確,因爲理想情況下,您的答案絕對正確。對不起,這花了這麼久! – andrewpthorp 2011-04-20 13:43:28