【发布时间】:2013-01-27 10:43:50
【问题描述】:
我想知道iframe 和designMode = 'on' 中插入符号的父元素是什么。
原因是想知道当前用户是否正在输入p 标签。
【问题讨论】:
标签: javascript html iframe rich-text-editor designmode
我想知道iframe 和designMode = 'on' 中插入符号的父元素是什么。
原因是想知道当前用户是否正在输入p 标签。
【问题讨论】:
标签: javascript html iframe rich-text-editor designmode
这是一个执行此操作的函数,改编自an answer to a similar question:
function getSelectionBoundaryElement(win, isStart) {
var range, sel, container = null;
var doc = win.document;
if (doc.selection) {
// IE branch
range = doc.selection.createRange();
range.collapse(isStart);
return range.parentElement();
} else if (win.getSelection) {
// Other browsers
sel = win.getSelection();
if (sel.rangeCount > 0) {
range = sel.getRangeAt(0);
container = range[isStart ? "startContainer" : "endContainer"];
// Check if the container is a text node and return its parent if so
if (container.nodeType === 3) {
container = container.parentNode;
}
}
}
return container;
}
使用示例:
var iframe = document.getElementById("your_iframe_id");
var caretElement = getSelectionBoundaryElement(iframe.contentWindow, true);
【讨论】:
isStart 是什么意思?
isStart 指示是否使用选择开始或结束边界。在折叠选择的情况下(即只是一个插入符号),它们是相同的,因此 isStart 的值无关紧要。