假设我有一个contentEditable div,用户可以编辑和更改其中的文本和元素.如何div使用javascript 随意更改此选项?通过"改变"我的意思不是"改变任何的用户选择的内容",我的意思是真正改变什么选择.然后,用户应该能够键入选择内容,将其替换为其他内容.
这应该考虑到我可能想要跨元素选择文本.例如:
<p>Some text <span>goes</span> here.</p>
Run Code Online (Sandbox Code Playgroud)
我可能想要选择"一些文字去",或者内部的所有内容<p>.
这只需要在Safari/Webkit中工作.
提前致谢.作为本地代码开发人员,我发现DOM和Javascript一般非常令人沮丧.
Luc*_*cas 11
只是为了详细回答我自己的问题,所以任何寻找类似东西的人都不必去别处寻找......
我最终使用的代码是这样的:
var range = document.createRange();
range.setStart( <get the node the selection starts in>, <char offset in that node> );
range.setEnd( <get the node the selection ends in>, <char offset in that node> );
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
Run Code Online (Sandbox Code Playgroud)
非常感谢James Black指出了正确的方向.
除非您需要自己编写,否则您可能需要查看tinyMCE,http://tinymce.moxiecode.com/,因为它是一个很好的所见即所得的 JavaScript 编辑器。
为了做到这一点,您可能需要查看如下内容: http://codingtricks.blogspot.com/2009/03/javascript-select-partial-text-in-div.html
这些也可能有帮助: JavaScript range gone bad https://developer.mozilla.org/en/DOM/window.getSelection
您想要做的事情将会很复杂,因为您需要选择所选区域,删除所有标签,然后放入您想要为所选区域添加的标签。
| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |