Windows XP だけで起きていたり、環境によって違うかもしれませんが、 結構致命的で、Safari の為だけにコードを書かないといけないので困ります。 これは操作するほうが注意しないといけない内容ですが、対応したい場合は setTimeout を使います。 10 ミリセカンド後でいいので、alert や confirm の処理を含んだ function を setTimeout で呼び出す事で正しく動作します。これをしないと、表示している メッセージボックスは、クリックしても一度目は反応しません。それでころか、1 度目にボタンをクリックすると、その後ろ側にある HTML に対して反応してしまい ます。 かなり、致命的です HTML のインラインで書く場合は、無名 function を使い、イベント用の文字列 はシングルクォートで表現するといいです。そうすると、プログラム出現率の高 い、ダブルクォートを心おきなく使えます。 ※ シングルクォートが必要な場合は、' を使えます。
<input type="button" value="action" onclick='alert("I can't fly.")'> <input type="button" value="action" onclick=' setTimeout(function(){ alert("I can't fly.") },10); '>
|
【JavaScriptの最新記事】
- ブラウザ上のテキストをレジストリデータのエクスポートである .reg として保存させる JavaScript のコード
- Google Visualization API の円グラフと通常テーブルの表示を jQuery のプラグインで作成する
- 【改造】雪を降らす snowstorm.js に 風向きを外部から設定できるオプションを追加しました
- bit.ly のブックマーレットを開けて見てみると、『tumblr』のを転用してました
- prototype.js による onload イベントの登録
- jQuery の bind メソッドで一般的な onload イベントを実装
- google.load + YUI Loader で、カラーピッカーを設置
- jQuery の $(document).ready の実際の中身と $(window).load と prototype.js での onload 実装と $ メソッドをリネームして混在使用
- JSON 文字列の末端の値を PATH 形式で参照する