私はAJAXベースのシャウトボックスでデザインしています。 http://businessgame.be/shoutbox.php
スクリプトはグーグルクロームで完全に動作しますが、他のブラウザは私が期待するように動作しません。
新しいメッセージを叫ぶために、入力テキストフィールドを所有するフォームがあります。Enterキーを押すとフォームが送信されますが、Enterキーを押すだけで十分なので、送信ボタンを省略しました。
<form method="POST" action="" onsubmit="javascript: return shout();" enctype="multipart/form-data">
<input type="text" style="width: 100%;" name="txtShout" id="txtShout" maxlength="600" autocomplete="off" title="Shout!" placeholder="Shout!">
</form>
シャウト関数は次のようになります。
function shout() {
alert("test");
// Post shout and clear textField
if(getLength("txtShout")) {
AjaxUpdate("./includes/shout.php?message=" + getItemValue("txtShout"), refreshShoutBox);
setItemValue("txtShout", "");
}
// Stop submit
return false;
}
通常、スクリプトはshout関数を呼び出す必要があり、AJAXはshoutを追加するリクエストを送信してから、フォームが送信されないようにfalseを返します。
ただし、Google Chromeを除くすべてのブラウザでは、フォームはとにかく送信されます。関数にalert()を入れて、呼び出されたかコーディングミスがないかを確認しましたが、アラートが表示されません。