2012-07-04 68 views
0

我想从iFrame中获取所选区域。这里有一些类似的帖子,但没有作品,所以我决定再次尝试。iframe获取所选区域

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

所以我想实现的是类似于什么是实现在stackoverflow后textarea。现在我知道他们正在使用第三方wysiwyg编辑器的变体。我试图纯粹为了教育目的重新开始这个轮子。

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

回答

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; 
    } 
} 
+0

甜它的工作!谢谢@Sudhir! – drjay

+0

不客气 –