1

非常に基本的な質問だと思います。PerlCGIを使用してWebページを開発しようとしています。フォームにテキストエディタ(iframeを使用)があります。コード:

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

param関数を使用して、PerlCGIコードのフォームの送信時にテキストエディターで書き込んでいるコンテンツをキャプチャしようとしています。しかし失敗!私を助けてください。

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

クライアントは、HTMLの要素内の名前<input>付き要素<select>または要素からのデータのみを渡します。内のJavaScriptエディターからデータを返すには、JavaScriptを使用して入力要素の値を設定する必要があります。<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 に答える