新添加的DOM元素返回null
Newly added DOM element returns null
我在运行时向时序文档添加一个span。
ed.onKeyUp.add(function (ed, e) {
sendText(ed, e);
ed = tinyMCE.get('editor');
range = ed.selection.getRng();
var newNode = ed.getDoc().createElement("span");
newNode.id = "caret";
ed.getDoc().body.appendChild(newNode);
newNode.innerHTML = "|";
newNode.style.color = "black";
range.insertNode(newNode);
});
正如您所看到的,我通过使用createElement方法添加节点,并通过对我想要的元素使用append子元素将其添加到DOM。
问题是我不能找到新添加的元素使用:
document.getElementById("caret");
返回null。为什么会发生这种情况?知道我能做什么吗?
EDIT:我使用document.getElementById("插入符");在初始化tinyMCE文档时调用的函数中,因为我需要这个函数来闪烁自定义插入符号。
功能如下:
function blink() {
var caret = document.getElementById("caret");
if (caret.style.color == "transparent") {
caret.style.color = "black"
} else {
caret.style.color = "transparent";
}
}
我叫它oninit: setInterval("blink()", 700)其中oninit是tinyMCE的参数
TinyMCE使用包含自己文档的iframe来允许编辑。
因此,当您使用document.getElementById
时,您正在搜索错误的DOM。
如果您可以访问TinyMCE编辑器对象,则可以使用ed.getDoc().getElementById()
。
如果您需要全局访问,您可以使用TinyMCE.editors
集合来访问特定的编辑器
相关文章:
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- IE9-添加和删除DOM元素会破坏父keydown事件
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- 在 ng-if 编译后访问指令中的 DOM 元素
- spin.js/angular spinner:如何将spin定位到DOM元素中(包括plunker演示)
- 如何在dom元素中插入输入标记数据插件
- Mobile Safari、jQuery以及绑定到未来的DOM元素
- 从字符串创建dom元素时添加多个类
- 如何根据客户端的屏幕大小使用javascript更改DOM元素
- 为onClick-hander插入临时DOM元素