1

如您所见,下面我有两个旨在使文本变为粗体的函数:doRichEditCommand()SetToBold()

我的目标是,首先,让doRichEditCommand()在嵌入的textareaiframe中工作,因为它可以在所有主要浏览器上完美运行,然后让像SetToBold()这样的execCommand函数工作,因为我不确定它们是否交叉- 在iframe中时的浏览器。

为了使第一个功能起作用,我启用了 designMode。但是,启用它后,textarea变得不可编辑。

如何修改下面的代码,以便我的函数可以在textarea嵌入的iframe?

在此先感谢您的帮助。

<html>
<head>
<script type="text/javascript">

function getIFrameDocument(aID){
// if contentDocument exists, W3C compliant (Mozilla)
if (document.getElementById(aID).contentDocument){
return document.getElementById(aID).contentDocument;
} else {
// IE
return document.frames[aID].document;
 }
}

function load(){
getIFrameDocument("editorWindow").designMode = "On";
}

function doRichEditCommand(aName, aArg){
getIFrameDocument('editorWindow').execCommand(aName,false, aArg);
document.getElementById('editorWindow').contentWindow.focus()
} 

function SetToBold () {
        document.execCommand ('bold', false, null);
    }
</script>
</head>
<body onload="load()">
  <iframe id="editorWindow" src="you.php"></iframe>
  <button onclick="doRichEditCommand('bold')" style="font-weight:bold;">B</button>
  <button onclick="SetToBold();">Bold</button>
</body>
</html>

PS 我没有包含“you.php”,因为它只是必要的标签和文本区域。

4

0 回答 0