用标签替换每个单词

She*_*tib 4 javascript java android

需要JAVASCRIPT或JAVA解决方案

我正在寻找的解决方案可以使用java或javascript.我有一个字符串中的html代码,所以我可以在使用java之前或之后用javascript操作它.

问题

无论如何,我必须用标签包装每个单词.例如:

<html> ... >
Hello every one, cheers
< ... </html>
Run Code Online (Sandbox Code Playgroud)

应改为

<html> ... >
<word>Hello</word> <word>every</word> <word>one</word>, <word>cheers</word>
< ... </html>
Run Code Online (Sandbox Code Playgroud)

为什么?

这将帮助我使用javascript来选择/突出显示一个单词.似乎唯一的方法是使用我在JAVASCRIPT提示中添加的函数highlightElementAtPoint :它只是找到某个x,y坐标的元素并突出显示它.我认为,如果每个单词都是一个元素,它将是可行的.

我的想法是使用这种方法允许我们检测android WebView中突出显示的文本,即使这意味着使用扭曲突出显示方法.多想一想,您会发现许多其他应用程序.


JAVASCRIPT提示

我使用以下代码突出显示一个单词; 但是,这将突出显示属于某个标签的整个文本.当每个单词都是一个标签时,这将在某种程度上起作用.如果有替代品可以让我在某个位置突出显示一个单词,那么它也是一个解决方案.

function highlightElementAtPoint(xOrdinate, yOrdinate) {
    var theElement = document.elementFromPoint(xOrdinate, yOrdinate);
    selectedElement = theElement;
    theElement.style.backgroundColor = "yellow";
    var theName = theElement.nodeName;
    var theArray = document.getElementsByTagName(theName);
    var theIndex = -1;
    for (i = 0; i < theArray.length; i++) {
        if (theArray[i] == theElement) {
            theIndex = i;
        }
    }
    window.androidselection.selected(theElement.innerHTML);
    return theName + " " + theIndex;
}
Run Code Online (Sandbox Code Playgroud)

Thk*_*kru 6

尝试使用类似的东西

String yourStringHere = yourStringHere.replace(" ", "</word> <word>" )
yourStringHere.replace("<html></word>", "<html>" );//remove first closing word-tag
Run Code Online (Sandbox Code Playgroud)

应该工作,也许你必须改变......