1

我认为这是一个非常基本的问题。我正在尝试使用 Perl CGI 开发网页。我的表单中有一个文本编辑器(使用 iframe)。代码:

<iframe id="textEditor" style="width:500px; height:170px;background-color:white">
</iframe>

我正在尝试使用 param 函数捕获我在 Perl CGI 代码中提交表单时在文本编辑器中编写的内容。但是失败了!!请帮帮我。

有与iframe相关的代码:

<iframe id="textEditor" style="width:500px; height:170px;background-color:white">
</iframe>
<script type="text/javascript">
<!--
textEditor.document.designMode="on";
textEditor.document.open();
textEditor.document.write(\'<head><style type="text/css">body{ font-family:arial; font-size:13px; }</style> </head>\');
textEditor.document.close();
function def()
{
   document.getElementById("fonts").selectedIndex=0;
   document.getElementById("size").selectedIndex=1;
   document.getElementById("color").selectedIndex=0;
}
function fontEdit(x,y)
{
   textEditor.document.execCommand(x,"",y);
   textEditor.focus();
}
-->
</script>

我正在尝试使用 CGI param() 函数捕获在文本编辑器中写入的值。

4

1 回答 1

0

客户端只会传递来自 named或HTML 中元素内的元素的<input>数据。要从 中的 JavaScript 编辑器传回数据,您需要使用 JavaScript 设置输入元素的值。<select><textarea><form><iframe>

根据本教程,你会希望你的 HTML 看起来像

<form name="myForm" action=".../my-cgi-script.cgi" method="POST">
    <input name="editorData" type="hidden" value="">
    ... other input elements ...
    <iframe id="textEditor" ...></iframe>
</form>

当按下提交按钮时,您将需要一些这样的 JavaScript 来运行。

document.myForm.editorData.value = textEditor.document.body.innerHTML;
document.myForm.submit();

在服务器端,该参数editorData将包含您的文本编辑器的内容。

于 2012-08-26T17:21:26.600 回答