我正在尝试从iFrame中获取所选区域。这里有几个类似的帖子,但都没有用,所以我决定再试一次。
function getIframeSelectionArea() {
var frm = frames['iFrameTextBody'].document;
var win = frm.contentWindow;
alert(win.getSelection().toString());
}
所以我想要实现的是类似于stackoverflow post textarea中实现的内容。现在我知道他们正在使用第三方所见即所得编辑器的变体。我试图将轮子重新用于教育目的。
我的实施很简单。我想选择一个文字并点击粗体,并在所选区域的任一侧显示<b></b>
标签。我知道我使用execCommand('bold',false,null)来做同样的事情。正如我之前所说,这是一个实验。
这个想法是,一旦返回所选区域,就调用以下函数:
function addhtmlTag(str){
var frm = frames['iFrameTextBody'].document;
var frmbody = frm.getElementsByTagName('body')[0];
var bold_tag = frm.createElement('b');
bold_tag.textContent = str;
frmbody.appendChild(bold_tag);
}
非常感谢任何见解!
干杯
Drjay
答案 0 :(得分:1)
你的意思是:
function getSelectionFrame() {
var frame = document.getElementById(frameId);
var frameWindow = frame.contentWindow;
var frameDocument = frameWindow.document;
if (frameDocument.getSelection) {
return frameDocument.getSelection();
} else {
return frameDocument.selection.createRange().text;
}
}