私はロゴのような基本的なタートル グラフィックス インタープリターを数年前に開発しましたが、それを Web に載せたくありません (私のいとこが私を悩ませ続けているため)。私は HTML と Javascript のコーディングにはまったく慣れていませんが、試してみて、これを学習体験として取り入れてみようと思いました。
以下のコードは、基本的な UI 用です (私の UI は非常に見苦しく、後でクリーンアップします)。
「cmd-form」のonsubmitと呼ばれるJavascript関数pushCmdを作成しました。
function pushCmd()
{ var cmdText = document.forms["cmd-form"]["cmd-text"].value;
var srcElement = document.getElementById("source-container");
var srcText = new String(srcElement.innerHTML);
srcText = srcText.toUpperCase();
if (srcText.indexOf("NO CODE") != 0)
{
srcText = cmdText;
}
else
{
srcText += "<br>" + cmdText;
}
srcElement.innerHTML = srcText;
}
フォームは以下のように宣言されます。
<div id="command-container">
<form name="cmd-form" action="" onsubmit="pushCmd()" onreset="resetSource()" method="post">
<input type="text" name="cmd-text" size="80">
<input type="submit" value="Send">
<input type="reset" value="Reset">
<input type="button" value="Run">
</form>
</div>
pushCmd 関数は、div "source-container" の HTML コンテンツを変更する必要があります。デフォルトでは以下のようになります。
<div id="source-container">NO CODE</div>
最初のテキストを送信した後 (「FWD 100」と言います)。「source-container」の内容が「FWD 100」に変わるはずです。それから「RT 90」を提出すると、内容は「FWD 100 RT 90」になるはず
です。これが私が期待するものです。
しかし、私がテキストを提出するとき。「source-container」の内容が一瞬変化し、再び「NO CODE」に戻ります。なぜこれが起こっているのですか、誰か私の間違いがどこにあるのか指摘してもらえますか?
get と post の両方の方法を試しましたが、結果は同じです。Javascript コンソールにもエラーや警告が表示されません。それが重要な場合は、Google chromeバージョン26.0.1410.63を使用しています(そうではないと思います)。
さらに情報が必要な場合や、これに関する完全な HTML ソースが必要な場合はお知らせください。