タグ

ブックマーク / blog.enjoyxstudy.com (7)

  • テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study

    テキストエリアでのリターンキーで、submitイベントが発生しないようにする場合、ブラウザ毎にどのような処理を書けばいいのか調べてみました。(submitイベント自体に処理を追加せずに、テキストエリアでのイベントで制御したかったので) テキストエリアでのリターンを拾えるイベントとしては、下記の3つがあります。 keypress keydown keyup イベントをキャンセルする方法は、IEのJScriptの実装と、DOM 2のEventモデルでの実装である下記の2パターンを試しました。 event.preventDefault() event.returnValue=false そして確認の結果、上記のイベント×キャンセル処理の組み合わせでsubmitイベントがキャンセル出来るのは、下記のパターンとなりました。 IE 6 keydown - event.returnValue=false

    テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study
  • Enjoy*Study - undefined

    変数、プロパティが定義されていない(undefined)かの判定処理を、その時々で適当いろいろな書き方をしてしまっているので、自分の中で整理してみます。 良く使う/見かけるのは、下記の3つです。 (!x) (x == undefined) (typeof x == 'undefined') 上記はそれぞれ成立する条件が異なりますので、下記にそれぞれ記載します。 (!x) コード一番短くて済むので多用するのですが、、 !xが成立するのは、xがundefinedの場合だけじゃなくて、多岐にわたるので使用時に注意が必要だと思います。 !xがtrueになるようなものには下記があります。 (思いつくままに挙げてみたので、これもそうだよ!!とかあったらコメントいただけると助かります) undefined null false 0 NaN '' (空文字) プロパティが存在するかどうかで、数値(Numb

    Enjoy*Study - undefined
  • テキストボックス内でカーソル位置を移動する方法 - Enjoy*Study

    テキストボックス内のカーソル位置を末尾に設定する方法を調べてみました。 IE 6.0、Opera 8.5 の場合 var elm = document.getElementById('text'); // テキストエリアのelement取得 elm.focus(); // Operaの為(IEでは無くても大丈夫) var range = elm.createTextRange(); range.move('character', elm.value.length); range.select();当初、elm.focus()は入れてなかったのですが、Operaではこうしないとちゃんとカーソルが移動してくれません。(この動きに悩まされました) IEだと、range.select()で、フォーカスが移動し、カーソル位置もちゃんと末尾に行くのですが、Operaだと、フォーカスは移動するが、テキス

    テキストボックス内でカーソル位置を移動する方法 - Enjoy*Study
  • Enjoy×Study - IEの標準/互換モードで参照すべきclientHeightが異なる

    Internet Explorer上のJavaScriptで、クライアントサイズが取得できない問題 クロスブラウザに注意がいきがちですが、標準/互換モードによって参照すべきプロパティが変わってくるものもあるとは、、 互換モード document.body.clientHeight 標準モード document.documentElement.clientHeight [追記] 調べていくと、他のブラウザ(FireFox,Opera..)でも標準/互換モードでウインドウ・ページサイズがらみのプロパティは、値の取れ方が異ってくるようです。 FireFox 1.5では標準/互換モードの違いでdocument.bodyとdocument.documentElementの値が入れ替わりました。 ウインドウ・ページサイズに関するプロパティは、クロスブラウザ&標準/互換モードの組み合わせで検証しないと危

    Enjoy×Study - IEの標準/互換モードで参照すべきclientHeightが異なる
  • ブラウザの表示領域のサイズを取得する方法。 - Enjoy*Study

    ブラウザの表示領域を取得するに当たって、「ブラウザの種類」×「表示モード(標準/互換)」によって参照するプロパティが変わってきます。 IE、FireFox、Opera、Safariにて、表示モード毎に参照すべきプロパティをまとめてみました。(Safariについては2007/05/20に追記) 調査したのは、下記のプロパティです。 window.innerWidth window.innerHeight document.body.scrollWidth document.body.scrollHeight document.body.offsetWidth document.body.offsetHeight document.body.clientWidth document.body.clientHeight document.documentElement.scrollWidth d

    ブラウザの表示領域のサイズを取得する方法。 - Enjoy*Study
  • script.aculo.usのEffectで文字が滲む、ぼやける(IE) - Enjoy*Study

    script.aculo.usのEffect(Effect.FadeやEffect.Apperなどのような、透過率が変わるもの)にて、IEの場合に文字が滲んだようにぼやけて表示されることがあります。 script.aculo.us - web 2.0 javascript background-colorが設定されていない要素に対してEffectを行った場合に発生します。 といっても、必ず発生するわけでも無く、文字のサイズや、解像度によっても変わるようです。 下記にサンプルをおきましたので、IEで表示してみてください。 script.aculo.usのEffectで文字が滲む、ぼやけるサンプル 私のマシン(解像度:SXGA)では、、 15px:問題なし 18px:英数字のみ滲む。 25px:全ての文字が滲む。 といった感じです。 background-colorが設定してあれば滲まないので

    script.aculo.usのEffectで文字が滲む、ぼやける(IE) - Enjoy*Study
  • 入力補完を行うためのライブラリを作ってみた - Enjoy*Study

    - 2006/01/24:ライセンスについて追記しました。 - JavaScriptで入力補完を(割と)手軽に行えるようなライブラリを作ってみました。 suggest.js - 入力補完ライブラリ 入力補完というと、Google Suggestのように入力内容から逐次サーバと非同期通信し、その結果を表示するといった方式(Ajax)がぱっと思いつきますが、このライブラリでは、補完候補の全件をあらかじめクライアント側で保持し、その後はJavaScriptを使って検索を行う方式をとってます。 下記を読んでなければ、こんなことしようとは思わず、何でもAjaxでやろうとして、サーバの負荷上げていたと思います。 最速インターフェース研究会 :: XMLはメタデータというより生データとしての利用価値が高まりつつあり、AjaxによるUIの切り離しがそれを加速する ma.laさんの記事はいつも勉強になります

    入力補完を行うためのライブラリを作ってみた - Enjoy*Study
  • 1