2006-08-01から1ヶ月間の記事一覧

Elementオブジェクト(に対する拡張)(1)

【抜粋】一部省略 if (!window.Element) { var Element = new Object(); } Object.extend(Element, { visible: function(element) { return $(element).style.display != 'none'; }, (省略) undoClipping: function(element) { element = $(element); if (el…

document.getElementsByClassNameメソッド

やっと半分まできました^^;申し訳ありませんが、以降は逐行の解読ではなく、ポイントのみの記述とさせてください。ここまでのすべてを理解された方なら、問題ないと思います。 【抜粋】 document.getElementsByClassName = function(className, parentEle…

Ajax.Requestでのフォームデータ送信サンプル(postbodyへの設定)

※http://d.hatena.ne.jp/susie-t/20070531/1180585173 へ移しました。

Ajax.PeriodicalUpdaterクラス

【抜粋】一部省略 Ajax.PeriodicalUpdater = Class.create(); Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { initialize: function(container, url, options) { (省略) }, (省略) onTimerEvent: function() { this.updater = new Aj…

さっき気がついたこと・・・。

今までのJSPの例で、キャッシュ無効化の部分で間違いがありました。 【誤】 response.setHeader("progma","no-cache");【正】 response.setHeader("Pragma","no-cache");「o」になってましたorz すでに修正しましたが、流用している場合にはお気をつけくださ…

Ajax.Updaterクラス

【抜粋】一部省略 Ajax.Updater = Class.create(); Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { initialize: function(container, url, options) { (省略) }, (省略) if (this.responseIsSuccess()) { if (this.onComp…

Ajax.Requestクラス(2)

respondToReadyStateメソッド 【抜粋】 respondToReadyState: function(readyState) { var event = Ajax.Request.Events[readyState]; var transport = this.transport, json = this.evalJSON(); if (event == 'Complete') { try { (this.options['on' + thi…

Ajax.Requestクラス(1)

【抜粋】一部省略 Ajax.Request = Class.create(); Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; Ajax.Request.prototype = Object.extend(new Ajax.Base(), { initialize: function(url, options) { this.tr…

連想配列ソート関数

はてなの人力検索で回答した際に、連想配列ソート関数を作成したので載せておきます。※Operaで想定外の動作をする場合があります。追記を参照してください。 <html> <head> <title></title> <script> /** * sortObj 連想配列ソート関数 * @obj 対象オブジェクト * @isKey true : キーでソート * </head></html>…

Ajax.Baseクラス

【抜粋】一部省略 Ajax.Base = function() {}; Ajax.Base.prototype = { setOptions: function(options) { this.options = { method: 'post', asynchronous: true, parameters: '' } Object.extend(this.options, options || {}); }, (省略) responseIsFailu…

XMLHttpRequestのresponseTextで扱える文字コードについて

よく分かっていない部分もありますが、備忘録としてメモします。XMLHttpRequestオブジェクトのresponseTextプロパティは、(ほとんどのブラウザで)デフォルトでは文字コードUTF-8とみなされます。が、ブラウザよって違いはありますが、他の文字コード(shift_j…

Ajax.Respondersオブジェクト

【抜粋】一部省略 Ajax.Responders = { responders: [], (省略) dispatch: function(callback, request, transport, json) { this.each(function(responder) { if (responder[callback] && typeof responder[callback] == 'function') { try { responder[cal…

Ajaxオブジェクト

prototype.js解読のもう一つの山場。というか、ここが肝でしょうか。Ajax.Responders, Ajax.Base, Ajax.Request, Ajax.Updater, Ajax.PeriodicalUpdaterはそれぞれ別に解読します。Ajaxオブジェクトは上記のAjax関連のクラス・オブジェクトの名前空間(他と名…

いつかはもっときれいにしたい。

prototype.jsの解読なんぞをやっていますが、拙作theater.jsではprototype.jsを使っていません。それでもクラス作成・継承をやっています。・・・が、かなりごちゃごちゃしてます。prototype.js等を知らずに我流でやってしまった結果です。なので、お手本に…

$R関数

【抜粋】 var $R = function(start, end, exclusive) { return new ObjectRange(start, end, exclusive); }前述ObjectRangeクラスのオブジェクトを作成、返却します。 【例】前述のObjectRangeクラスの例を$R関数に変えただけ。 var objR1 = $R(-2, 3, true)…

ObjectRangeクラス

【抜粋】 ObjectRange = Class.create(); Object.extend(ObjectRange.prototype, Enumerable); Object.extend(ObjectRange.prototype, { initialize: function(start, end, exclusive) { this.start = start; this.end = end; this.exclusive = exclusive; }…

$H関数

【抜粋】 function $H(object) { var hash = Object.extend({}, object || {}); Object.extend(hash, Enumerable); Object.extend(hash, Hash); return hash; }空のオブジェクトに、引数object(nullの場合は空オブジェクト)を継承させています。これにより引…

配列とカスタムオブジェクト(連想配列)

配列はArrayクラスのインスタンスです。ただし、以下の前提があります。配列のインデックスは0から連続した自然数である勘違いしがちなのは、lengthプロパティがオブジェクトのメンバ数を表す、と思ってしまうことです。実際には最大の自然数のインデックス+…

HashクラスのEnumerableクラスから継承したメソッド使用サンプル(2006/09/04追記)

HashクラスのEnumerableクラスから継承したメソッドについて、使用サンプルを羅列します。いっぺんには書けないので少しずつ追加していきます。・・・そのうち字数制限に引っかかるかも^^; そのときは別の日に移します。。。基本的に「Enumerableクラス(2…

Hashクラス

【抜粋】一部省略 var Hash = { _each: function(iterator) { for (key in this) { var value = this[key]; if (typeof value == 'function') continue; var pair = [key, value]; pair.key = key; pair.value = value; iterator(pair); } }, (省略) inspect…