タグ

JavaScriptに関するshozzyのブックマーク (247)

  • JavaScript: クロスブラウザでブロック要素内のクリック座標を得る方法:phpspot開発日誌

    JavaScript: クロスブラウザでブロック要素内のクリック座標を得る方法 ちょっとやることがあって調べてみたら案外情報が見つからず、実現するのに時間がかかったのでメモしておきます。 <script type="text/javascript"> <!-- function clickhandler(event) { if (!event) { event = window.event; } var hx, hy; if (document.all) { // for IE hx = event.offsetX; hy = event.offsetY; } else { hx = event.layerX; hy = event.layerY; } alert("x:"+hx+",y:"+hy); // return [hx,hy]; } //--> </script> <div on

  • フォームの入力エラーを吹き出しで教えてくれるサンプル

    フォームの入力エラーを吹き出しで教えてくれる JavaScript のサンプル 一般的なフォーム お名前: メールアドレス: 色々サンプル 普通のやつ 必須入力 メールアドレス (mail) 全角カタカナ (kana) 他のフィールドと同じ値を入力する (equal) 他のフィールドと同じ値を入力する (equal) 文字数の制限 - 5〜10文字 (count5-10) 文字数の制限 - 5文字以上 (count5-) 文字数の制限 - 10文字以下 (count-10) 文字数の制限 - 10文字 (count10) 数字のみ (num) 数値範囲の制限 - 100〜200 (num100-200) 数値範囲の制限 - 100以上 (num100-) 数値範囲の制限 - 200以下 (num-200) アルファベット (alphabet) 複合したやつ アルファベット5〜10文字 (a

    shozzy
    shozzy 2007/02/06
    ここがエラーだよ!ってのが直感的にわかるのがいいね!
  • Firefox では RegExp って関数だったのね - IT戦記

    関数とは Function を new したものというイメージがありますが。厳密にはオブジェクトに [[Call]]という内部プロパティが、ある→「関数」、ない→「関数じゃない」、ということになっています。関数がオブジェクトかどうかはプロトタイプやコンストラクタとは無関係です。 つまり typeof は内部プロパティ Call を参照することによって関数か関数でないかを判断しているということなんです。 例えば (IE では動かないです。) var f = new Function('alert("Hello!")'); f.__proto__ = Object.prototype; alert(typeof f); f(); このように、プロトタイプを差し替えても f は function なのです。 RegExp も実は関数 最近知ったのですが。Firefox では、 RegExp も関

    Firefox では RegExp って関数だったのね - IT戦記
  • script.aculo.usベースのリッチGUIコンポーネント作成JavaScriptライブラリ「Spinelz」:phpspot開発日誌

    script.aculo.usベースのリッチGUIコンポーネント作成JavaScriptライブラリ「Spinelz」 2007年01月31日- Spinelz - JavaScript libraries Spinelzはscript.aculo.us.をベースに開発されています。 Ajaxや、script.aculo.us.の持つアニメーション効果を最大限に活かした、ちょっと便利な機能を提供しています。 script.aculo.usベースのリッチGUIコンポーネント作成JavaScriptライブラリ「Spinelz」。 タブ、メニューバー、ナビゲーションパネル、カレンダー、グリッド、ツリービュー等リッチなコンポーネントを実現できます。 以下にいくつか紹介。 タブボックス メニューバー ナビパネル カレンダー グリッド ツリービュー コンポーネントはCSSによってデザインされているため、

  • JavaScriptでキーボードイベントを驚くほど簡単に扱える「KeyTypeListener.js」:phpspot開発日誌

    script.aculo.usベースのリッチGUIコンポーネント作成JavaScriptライブラリ「S... 次の記事 ≫:ペイントより圧倒的に高機能な「Paint .net 3.0」が正式リリース 機能変更、お知らせなど - はてな技術発表会日記 - 1月19日の技術勉強会 タイプされたキーに対するアクションを行う Observer 的なライブラリ JavaScriptでキーボードイベントを驚くほど簡単に扱える「KeyTypeListener.js」 MochiKit ベースで、次のように簡単に使えます。 addKeybind('a', function(ev) { log('a')}); addKeybind('a', function(ev) { log('a!!');}, $('loglog')); addKeybind('B', function(ev) { log('B')})

  • 最速インターフェース研究会 :: Ajaxを使ったシンプルなチャット

    を作ってみました。 http://la.ma.la/misc/ajaxchat/ サーバーサイドのソースは5行です。 http://la.ma.la/misc/ajaxchat/write.txt CGIを使うのは書き込みの時だけで、表示はXMLHttpRequestを使ってログファイルを直接読み込みます。更新は差分取得で転送量とサーバー負荷を減らしています。 IEとFirefoxでしか動きません。 Operaはリクエストヘッダのセットが使えないので無理。 仕組み -HEADリクエストでログファイルのサイズを取得 -ファイル末尾1KBを取得 -レスポンスヘッダから最終更新日と現在のファイルサイズを保存 -If-Modified-SinceとRangeヘッダをセットして定期リロード とりあえずこれだけです。参加者表示も何もつけてませんが、改造の雛形にでもどうぞ。 Range付きのリクエストは

  • JavaScriptによる全文検索エンジン:phpspot開発日誌

    llameradaの日記 - JavaScriptによる全文検索エンジン JavaScriptでインデクス型の全文検索エンジンを作ってみた。全文検索エンジンを作る際に問題となるのは、インデクスデータを部分的に読み込む方法である。 JavaScript による全文検索エンジン。 JavaScriptによる、とはいってもインデックス作成部分はRubyによって作成されているらしいです。 検索を行う部分がJavaScriptによって構築されていて、1gramによる検索を行うようです。 クライアントサイドのJavaScriptによってこういったことをやってしまうというのはなかなか面白く、興味深いですね。 こういったソフトウェアがオープンソースなんかで発展していって欲しいですね。 関連エントリ JavaScriptオンリーで動く高速サーチエンジン&タグクラウド

  • JavaScriptによる全文検索エンジン - llameradaの日記

    JavaScriptでインデックス型の全文検索エンジンを作ってみた。全文検索エンジンを作る際に問題となるのは、インデックスデータを部分的に読み込む方法である。通常はmmapやpreadなどを使ってファイルの一部を部分的に読み込むのだが、もちろん、ブラウザには使えない。ブラウザでファイルの一部分を読み込むには2通りの方法がある。1つは、ファイルを多数のファイルに分割する方法であり、もう1つはHTTPリクエストのRangeヘッダを利用して、ファイルの一部を取得する方法である。前者の利点は、ブラウザのキャッシュが効くことや、対応ブラウザが多いことである。後者の利点は、ファイル数が少なくなるので、インデックスの管理が容易になることである。今回はRangeヘッダの実用性にも興味があったので、後者の方法を用いた。 参考ページ:最速インターフェース研究会 :: Ajaxを使ったシンプルなチャット 転置イ

    JavaScriptによる全文検索エンジン - llameradaの日記
  • 忘れてはいけない超絶JavaScriptライブラリ「BlueShoes:JavaScript Collection」:phpspot開発日誌

    BlueShoes: JavaScript Collection Get all the above components in one package. There is an example that uses most of the components.忘れてはいけない超絶JavaScriptライブラリ「BlueShoes:JavaScript Collection」。 既に紹介したと思っていたJavaScriptライブラリであるBlueShoesの紹介。 ご存知の方も多いと思いますが、知らない人も多いようですね。 ライブラリ、というより、リッチなコンポーネント集といったイメージで、次のような様々なコントロールが使えます。 WYSIWYGエディタ Excel風スプレッドシート ツリービュー スライダーコントロール 他にも下記の様々なリッチコンポーネントが使えます。 入力系コンポーネ

  • IT戦記 - CSS の勉強会をしました

    2007 CSS Study Meeting http://artcode.g.hatena.ne.jp/keyword/2007%20CSS%20Study%20Meeting 発表をしましたので資料を置いておきます。 http://usrb.in/amachang/static/cssstudy/200701/ Firefox で動きます。IE でもぎりぎりうごきます。あ、でも、横長な表示域じゃないと崩れる可能性大です。 左右キーで操作してください。また、ソースは実行できるようになってるので、実際に実行しながら読んでいっていただけるとうれしいです。 他に事前に CSS のセレクタのバグリストとプロパティ一覧を作りました。 プロパティ一覧は element.style に辞書アタックを掛けて各種ブラウザから抽出したプロパティです。 http://usrb.in/amachang/stat

    IT戦記 - CSS の勉強会をしました
  • グラフ描画機能が追加されたJavaScriptライブラリ「Dojo 0.4」:phpspot開発日誌

    dojo, the Javascript Toolkit: brought to you by the Dojo Foundation グラフ描画機能が機能追加されたJavaScriptライブラリ「Dojo 0.4」。 次のようなグラフがJavaScriptで描画することが可能です。曲線も美しいですね。一見Flashを使っているようにも見えます。 グラフ描画するためには、dojo.jsを読み込んで、次のようなコードを書きます。 dojo.require("dojo.collections.Store"); dojo.require("dojo.charting.Chart"); dojo.require('dojo.json'); // our sample data for our line chart. var json = [ { x: 0, y: 110, size:20, x2:

    shozzy
    shozzy 2007/01/15
    ガントチャートも描けるとな
  • JavaScriptで図形を描くHTML要素「Canvas」の実例

    JavaScriptを使ったAJAXが昨年前半まで大いに注目を集めていましたが、その根になったJavaScript自体は古くからあり、AJAXというのは新しい応用法みたいな側面が非常に強かったのが特徴です。 しかし今回紹介する「Canvas」要素はそういうのとは明らかに一線を画しています。グラフの描画、写真合成、アニメーションなどが可能で、実際にはMac OS X のDashboardに初導入されています。そのため、サポートしているブラウザはSafariとFirefox 1.5以降のGecko1.8ベースのブラウザ、それからOpera9となります。また、この「Canvas」要素は「HTML 5」としても知られるWhatWG Web applications 1.0仕様の一部でもあるそうです。 といろいろ書いても実感がわかないと思うので、いろいろな実例を見てみましょう。 まずは簡単なフレー

    JavaScriptで図形を描くHTML要素「Canvas」の実例
  • Kazuho@Cybozu Labs: E4X-XSS 脆弱性について

    « 安全な JSON, 危険な JSON (Cross-site Including?) | メイン | JSONP - データ提供者側のセキュリティについて » 2007年01月10日 E4X-XSS 脆弱性について Firefox でサポートされている JavaScript 拡張 E4X (ECMA-357) では、JavaScript 内に XML とほぼ同様のマークアップ言語を記述できるようになっています。しかし、マークアップ言語の解釈にはいくつかの違いがあり、この点をついたクロスサイトスクリプティングの可能性が (相当に小さいものの) 存在します。攻撃者は、 ウェブアプリケーションに E4X として解釈した場合に実行コードとして解釈されるコードを注入 (XSS) し、 1 のコンテンツを <script> タグを用いて参照するような別のウェブサイトを用意し、攻撃対象にアクセスさせ

  • Litebox 1.0 の rel 属性を自動付与する

    以前、クールに画像を表示するツール Litebox 1.0 をご紹介しました。この Litebox を起動するためには、a 要素の rel 属性に "lightbox" を付与しなければならないという条件があり、これを手動で付与するのは結構面倒です。 ということで「自動付与できないでしょうか」というご質問を頂きました。大変遅くなりましたが、rel 属性を自動付与する方法をエントリーにてご紹介致します。 rel 属性を自動付与するには、Litebox 1.0 のパッケージ内にある、js/litebox-1.0.js を任意のエディタで開き、130 行目辺り(リスト 1)に青色のコードを追加します。 リスト1 litebox-10.js 変更箇所 : // loop through all anchor tags for (var i=0; i<anchors.length; i++){ v

    Litebox 1.0 の rel 属性を自動付与する
  • Kazuho@Cybozu Labs: 安全な JSON, 危険な JSON (Cross-site Including?)

    « クロスサイトのセキュリティモデル | メイン | E4X-XSS 脆弱性について » 2007年01月06日 安全な JSON, 危険な JSON (Cross-site Including?) 先のエントリで、 JSON については、JavaScript として副作用をもたない (もたせようがない) ゆえに文法違反であるがゆえに、秘密情報を含むデータフォーマットとして使用することができるのです。 (Kazuho@Cybozu Labs: クロスサイトのセキュリティモデル) と書いたのですが、認識が甘かったようです。Jeremiah Grossman: Advanced Web Attack Techniques using GMail によると、配列の初期化演算子 [] の動作を外部から変更することができる注1とのこと。 実際に手元の Firefox 1.5 で試してみたところ、JS

  • Collection & Copy - 相対パスを絶対パスに変換する

    JavaScriptIE 6、IE 7、Firefox 2.0、Opera 9で確認。 function absolutePath(path){ var e = document.createElement('span'); e.innerHTML = ''; return e.firstChild.href; } alert(absolutePath('/')); 関連リンクJavaScriptな日々 | 相対パスを絶対パスに変換する方法Imageを使っています。 getAttribute href bugBug Report: getAttribute(”HREF”) is always absolutegetAttribute("href",2)とか。既存のa要素のhrefは上記の方法で絶対パスになるけど、document.createElement('a').href='/'では、

  • JSONを使ってAJAXベースのアプリケーションを高速化する:CodeZine

    稿では、Amazon Web ServicesをPHPで操作する方法を説明します。AWSを利用する方法には大きく分けてRESTとSOAPがあります。稿ではまず、簡単なため多くの開発者に利用されているRESTを紹介し(SOAPは稿では扱いません)、より抽象度の高い方法であるPEAR Services_Amazonを使った利用方法を紹介します。

  • ウィンドウサイズに応じてレイアウトを調整するJavaScriptライブラリ「Dynamiclayout.js」:phpspot開発日誌

    ウィンドウサイズに応じてレイアウトを調整するJavaScriptライブラリ「Dynamiclayout.js」 2006年12月27日- Particletree Dynamic Resolution Dependent Layouts ウィンドウサイズに応じてレイアウトを調整するJavaScriptライブラリ「Dynamiclayout.js」。 読み込んでおくだけで、750px以下、750px以上/950px以下、950px以上の3つのウィンドウサイズに応じて自動でCSSを切り替えることが出来ます。 JavaScriptの知識が一切なくとも、利用者の端末に合わせて、最適なUIを選択することができ、なかなか面白い&便利。 アイデア次第で凄く優れたWEBサイトになりそうな感じですね。 (750px 以下) (750px以上/950px以下) (950px以上) 関連エントリ AjaxでSS

  • 【ハウツー】JavaScriptの開発の決定版!? AdobeからJSEclipse (1) JSEclipseとは | エンタープライズ | マイコミジャーナル

    Ajaxアプリケーションを開発するにあたって、多くの場合、JavaScriptのコーディングが何らかの形で行われる。しかし、Prototype.jsを始めとするライブラリが大きくなりつつある昨今、単純なエディタで開発するのは骨が折れる。JavaC++にあるように、コーディングを助けるためのIDEが必要となるだろう。 そこで紹介したいのがJSEclipseだ。JSEclipseはEclipse IDE用のプラグインで、JavaScriptのコーディングを補助するための機能を提供するもの。Adobe Labsから提供されている。 すでに試験提供が開始されており、機能追加も活発におこなわれている。JavaScriptコーディングのための機能を多く提供しており、開発効率をあげてくれることは必須。稿ではこのJSEclipseを紹介したい。

  • ウノウラボ Unoh Labs: JavaScriptでクリップボードを使う(IE/Firefox)

    こんにちは、さかとくです。師走で忙しいですね。今回は、JavaScriptでクリップボードを使うプログラムを作ってみます。IEとFirefoxで動く簡単なライブラリを作ってみましたので、参考にしてください。 IEだけで動かすのは、簡単なのですが、FireFoxではクリップボードを操作する方法がありません。そこで、FireFoxでも使えるようにFlashを使って工夫してみます。 まず、参考までにIEでクリップボードを扱うJavaScriptを見てみましょう。IEなら以下のように一行書くだけです。