0

我正在尝试从 iFrame 获取选定区域。这里有几个类似的帖子,但没有一个有效,所以我决定再试一次。

function getIframeSelectionArea() {
var frm = frames['iFrameTextBody'].document;
var win = frm.contentWindow;
alert(win.getSelection().toString());
}

所以我试图实现的类似于在stackoverflow post textarea中实现的。现在我知道他们正在使用第 3 方所见即所得编辑器的变体。我试图纯粹出于教育目的重新启动轮子。

我的实现很简单。我想选择一个文本并通过单击粗体表示<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);
}

非常感谢任何见解!

干杯

杰伊

4

1 回答 1

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;
   }
}
于 2012-07-04T04:17:20.880 回答