Webフォームの画像ボタンをキーボードでsubmitした場合

Posted by
ぴろり
Posted at
2007/06/29 02:46
Trackbacks
関連記事 (1)
Comments
コメント (1)
Post Comment
コメントできます
Category
開発メモ カテゴリ
[pc][spam]Javascriptを利用したコメントスパム対策
submitボタンを画像にして、画像上のどこを押されたのか位置情報を得る、というのも手軽に出来るし、javascriptなしでいけるためいいなと思うのだけど、これってTabキーとEnterでsubmit押したときにも誤認識されずにいけるのだろうか?

 …どうなんでしょう? というわけでしてみました。

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する

 簡単なフォームを用意して送信されるデータを確認してみました。submit操作には画像ボタン(<input type="image">)を使用します。画像をマウスクリックすると,送信データにはマウスクリックされた位置が含まれますが,フォームの送信をキーボードショートカットで行なった場合にどうなるのかということです。

case 1

画像ボタンをマウスクリックするか,Tabキーでフォーカスを移してEnterキーでsubmitするか,アクセスキー(Alt+I)でsubmitできます。

case 2

画像の指定が間違っていて,画像ボタンが表示されていない場合

case 3

JavaScriptを使用してフォームをsubmitする場合

結果

(btn.xbtn.y)
1.5IE 6.0Netscape 7.1 9.1
case1.Enterキーを押下してsubmit (0,0)
case1.アクセスキーでsubmit (0,0) accesskey の指定は無効?
case2.ALTテキストをマウスクリック クリックされた箇所によらず空文字 クリックされた座標を返す 送信されるデータにパラメータが含まれない クリックされた座標を返す
case2.Enterキーを押下してsubmit 空文字 (0,0) 送信されるデータにパラメータが含まれない (0,0)
case2.アクセスキーでsubmit 無反応でsubmitできない (0,0) 無反応でsubmitできない accesskey の指定は無効?
case3.でフォームを送信する 送信されるデータにパラメータが含まれない
※いずれも XP Professionalで

 case1.とcase3.では各で動作にそれほど大きな差はありませんが,case2.の指定された画像ファイルが見つからない場合ではそれぞれ動作が異なるようです。また,キーボードでsubmitする場合でも,以前にマウスクリックでsubmitしていた場合,その値を記憶して(?)しまうようです(1.5で確認)


この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事


関連記事/トラックバック (全 1 件中、最新 5 件まで表示しています)

モーグルとカバとパウダーの日記 のスクリーンショット
タイトル
[pc][spam]Javascriptを利用したコメントスパム対策
Trackbacked at
2007/06/29 09:48
from
モーグルとカバとパウダーの日記
評価
Web Scouter
概要
MT-Keystrokes というMT用プラグイン - モーグルとカバとパウダーの日記 こちらのコメントで教えていただいた、MT-Keystrokesと...

この記事にトラックバックを送るには?

寄せられたコメント (全 1 件中、最新 5 件まで表示しています)

Posted by
stealthinu
at
2007/06/29 09:33
ID
h9B3D1Qg

自分も実験して試してみなくちゃ、と思ってたんですが、まだやってなかったので参考になりました。
マウスでクリックしなくても送られてくるのですね。これは使えそうです。

あとは、携帯から書き込まれる場合も送られるのかどうか、確認したいところです。
もし携帯からは送られないのだとしても、IP調べて携帯だったらこのフィルタは無視
ということで対応できると考えてます。

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 

コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。 お手数ですがご協力のほど宜しくお願いいたします。(必須)