2012-02-15 43 views
2

以下JavaScript代码可以在UIWevView中更改用户的选择范围,但iOS选择保持不变。我如何同步这两个选择,因此当应用程序使用JavaScript更改选择时,iOS选择也会发生更改。可能吗?如何在UIWebView中更改用户的选择范围?

var sel = window.getSelection(); 

var range = document.createRange(); 
range.setStart(sel.anchorNode,sel.anchorOffset + 1); // it removes the first letter from a selected range 
range.setEnd(sel.focusNode,sel.focusOffset); 

sel.removeAllRanges(); 
sel.addRange(range); 

回答

1

您可以更改Selection对象,你可以在任何其他浏览器,但除非选择已经是可见的,原因不明我iOS不更新可见选择。据我所知,这是无法绕过这一点的。

+2

如果这是不可能的,也许我会尝试突出使用CSS选择...不是最好的解决方案,但比没有好让一个新的选择可见。 – walker 2012-02-15 16:29:32

+0

@ user828845:'document.execCommand()'会为你做。请参阅http://stackoverflow.com/a/3224513/96100 – 2012-02-15 17:20:51

+0

谢谢!我会尝试。顺便说一句,我尝试::选择(CSS)来突出显示选定的文本,但不幸的是它不适用于移动Safari:( – walker 2012-02-15 21:46:43