我认为这是一个非常基本的问题。我正在尝试使用Perl CGI开发一个网页。我的表单中有一个文本编辑器(使用iframe)。代码:
<iframe id="textEditor" style="width:500px; height:170px;background-color:white">
</iframe>
我正在尝试使用param函数捕获内容,我在文本编辑器中使用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()函数捕获在文本编辑器中编写的值。
答案 0 :(得分:0)
客户端只会传输HTML中<input>
元素内的已命名<select>
,<textarea>
或<form>
元素的数据。要从<iframe>
内的JavaScript编辑器传回数据,您需要使用JavaScript来设置输入元素的值。
根据this tutorial,您希望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
将包含文本编辑器的内容。