在空节点(如文本节点)中添加文本/html
Add text / html in a empty node like text node
>我有这个函数,我从富文本编辑器调用以在选择中添加内容。
问题是,如果我使用 html 标签传递,它无法正常工作<center>some</center>
它不是制作内容中心,而是输出 HTML 和文本
function addTextAtCursorPostion(text) {
var sel, range, html;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(document.createTextNode(text));
}
}
此document.createTextNode
仅包含文本。有没有办法处理文本和html?
或者我们是否有任何可以将 HTML 放入其中的虚拟/空节点?
使用Firebug拍摄的富文本编辑器内部HTML的示例内容
<div contenteditable="true" id="editor">
<font face="Comic Sans MS">Go ahead</font>…
<a href="www.stackoverflow.com"><b><i>Welcome User</i>
**ADD HTML FORMATTED STRING HERE OR POSITION AT CURSOR**
</b></a><br>
</div>
如果我用span/div/p
包装我的 html文本,我可能会遇到 UI 对齐问题
我认为你不能使用文本节点来呈现HTML。您需要创建一个元素并使用innerHTML
插入代码。
var el = document.createElement('span');
el.innerHTML = text;
未测试,但我认为您可以将 HTML 字符串插入到自定义 HTML 元素中(除了全局添加的样式外,不会带来继承的样式),然后将其插入到范围内。
function addTextAtCursorPostion(text) {
var sel, range, html;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(document.createElement("range").innerHTML=text);
}
}
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 拆分文本节点
- 使用TreeWalker检索非Javascript文本节点
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- JavaScript 文本节点属性
- 如何在所有节点中获取页面的文本
- 根据类型更改 jstree 节点文本颜色
- 获取xml节点文本
- 如何在JavaScript中使用主节点文本对json对象进行排序
- 如何通过按钮单击和鼠标悬停/鼠标退出显示和隐藏节点文本?D3/JS.
- 在 jsTree 中,使节点文本可单击的最佳方法是什么(用于选中复选框)
- Javascript DOM,在不丢失间距信息的情况下获取节点文本
- 更改文本节点文本
- 正在更改jsTree中的节点文本
- 函数,用于比较DOM树中的两个节点文本
- 谷歌图表Sankey -节点文本样式
- 如何在JavaScript中将DOM节点文本值转换为UTF-8
- 不能改变js节点文本的颜色
- 如何在 arbor js 中为每个节点文本添加新行字符