IE でのメモリリーク ちょこちょこと紹介されているので知っている人も多いと思うが、IE には DOM ノードに絡んだメモリリークの問題がある。これに関しては Microsoft 自身の記事である「Understanding and Solving Internet Explorer Leak Patterns」に詳しいが、簡単にいえば DOM ノードオブジェクトに関する循環参照を作ると、IE を終了させるまでそのオブジェクトが解放されないというものだ。記事によればメモリリークには以下のようなパターンがあるという。 1. 単純な循環参照 ある DOM ノードオブジェクトのプロパティをたどっていくと自分自身に行き着く場合。以下のようなパターンが考えられる。 element.property == element element1.property1 == element2, element2
「【JavaScript】多重に派生されたクラスのコンストラクタで,基底クラスのコンストラクタを呼び出す方法」(Graviness Blog) にて基底クラスのコンストラクタを呼び出すという話題が出ていた。優乃さんは this から基底クラスのコンストラクタを呼び出したいようだが、JavaScript では this が何をさすかは文脈により異なってくる (「ECMAScript における this の意味」(Noncommutative Field) を参照)。なので個人的には基底クラスに関する操作はインスタンス (this) よりもクラス (コンストラクタ関数) から行ったほうがいいと思う。クラス名に依存したくないなら arguments.callee を用いればよい。 function Animal() {} // 基底クラス function Dog() { this.__supe
ブラウザ上でコードを読もうとしても頭に入らない。 たとえばデザインパターンの例なんかをブラウザ上で見たりする機会は結構あるけど、そういうのってまったく頭に入ってこない。頭が理解しようとしない。 どんなコードでもそうかっていうと違う (Ruby のリファレンスのサンプルコードは頭に入る) んだけど、なんでだろう。なんかただたんにコードの長さと必要性の問題な気がしてきた。 トップ prog ブラウザ上でコードを読もうとしても Canvas を使った gimp like な Triangle Color Selector ぐるぐる回ります。透過 PNG 版より正確です。正確さなんてどうでもよさそうですけど。 サイズを初期化時に自由に決められるのはいいっすね。似非 Flash 最初 GIMP の描画関数をそのままやってみたんだけど、さすがに重過ぎて使えなかった。頭悪いのでグラデーション系のメソッド
来年ものすごく流行りそうな手法が公開された。 これは痛い。 Google Desktop Exposed: Exploiting an Internet Explorer Vulnerability to Phish User Information 関連: eWeek記事 ITmediaの記事 I call this attack CSSXSS or Cascading Style Sheets Cross Site Scripting. うまいこと名前を付けたもんだなぁ…… 記事ではGoogle DesktopからHDDの情報を抜けることが問題視されるような書き方になっているが、CSSXSS自体はGDSとは関係がない。 一言で言うと、cssのimport文で任意のWebサイトの情報を抜き出せることを利用した攻撃だ。ログインして利用するWebサイトのHTMLが、ほかのWebサイトで利用で
現実逃避したくなってきた。12-03 で放置してるキャラが40歳 (2005-09-24 + 7 * 10) だからとりあえずログインするだけしてみるかとか考えつつ、ログインしてもやることないなぁと思ったりするんです。 公式ページからログインしてギルドのアレを見つつ、あー精霊武器とか実装されてんのかーみたいな。でもあれって普通にめんどくさいよなぁ。よなぁ。ハンディクラフトぐらいかなぁ。 トップ game mabinogi 12-03 トップ mabinogi mabinogi 12-03 前に書いた気がするけど、ECMAScript の var は Io の setSlot に似ている。 var foo; と書くと、既存のスコープの変数オブジェクトのプロパティに foo が作られる。そして foo = "1"; を書くと、スコープチェインの最初に、作られた foo プロパティを発見するため
The following is a changelog for JavaScript 1.6. This version was included in Firefox 1.5 (Gecko 1.8), which was released in November 2005. The corresponding ECMA standard is ECMA-262 Edition 3 and ECMAScript for XML (E4X) with some additional features. Several new features were introduced: E4X, several new Array methods, and Array and String generics. New features in JavaScript 1.6 Support for EC
はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaやC++とは根本的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基本的な性質について見ていくと共に、JavaやC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(
./with Imagination A JavaScript, CSS, XHTML web log focusing on usability and accessibility by Dustin Diaz Tuesday, November 29th, 2005 UPDATE: For anyone who lands on this article months after the fact, there is now a podcast entry about this article reviewing each and every function. If there was ever a universal common.js shared among the entire develosphere, you’d fine these ten (plus one bon
■ パスワードの安全性を教えてくれる JavaScript みんな大好き Google さんが、アカウントのパスワードを変更する時にパスワードの安全性を教えてくれるので真似っ子してみました。 最初は処理をパクってこっそり自分だけで使おうと思っていたのだけど、何やら単語の検索をしたりとややこしい事をしているようなので自前で作りました。 動作サンプル 使ってみたい人は、上の動作サンプルを見てパクッて下さい。 例のごとく。 var safe = new safetyCheck(document.getElementById('password')); safe.set(); みたいにして動かします。 コードを見るとわかりますが、かなり単純な計算方法です。Google さんみたいに単語だったら駄目だとかそんな事はありません。文字の種類(英大文字小文字、数字、記号)と文字の長さを元にして計算していま
いまだにかとユーとか見てる人がたくさんいるみたいなので 既読のリンクを隠すブックマークレットを作ってみました。 IE用 : 既読隠す Firefox/Opera用 : 既読隠す フレーム対応とかは誰か暇な人がやってくれると助かります。 ---- すでに表示されているHTMLにCSSルールを追加する方法は JavaScriptでプレビューつきCSSエディタ http://tokyoenvious.xrea.jp/b/javascript/css_editor_2.html を参考にしました。
IEあるいはIEエンジンのブラウザ(Sleipnirとか)を使っていて、どうもページの描画速度が遅い気がする―もっと正確には最初にページを開いたときより遅くなった―と感じたことはないだろうか? 特にあなたがJavaScriptを多用したページを開いているならば、もしかしたらIE特有のメモリリーク問題(IE memory leaks problemG)が原因かもしれない。 余談ですが、前回のmoblogエントリーは、自分のブログにモブログしたつもりが間違ってこちらにエントリーしてしまいました。気が向いたら移動しておきます。 で、本題ですが、この問題はより多くの利用者が(IEエンジンの)タブブラウザーを使うようになればなるほど顕在化してくると思われるのでメモしておこうと思います。ppBlogでもJavaScriptは欠かせませんし。最初に言っておきますが、この問題はIE4-6に特有のもので他の
それは何? prototype.js は Sam Stephenson によって書かれた JavaScript ライブラリです。 この熟考の上記述された標準に準拠したコードは、Web 2.0 において特徴となるリッチでインタラクティブなウェブページを制作する際の重荷を、あなたの肩から取り去ってくれるでしょう。 もしこのライブラリを使ったことがあるなら、充実したドキュメントがこのライブラリの売りではないことに気がついたはずです。 私は他の開発者と同様に、ソースコードを読み、試行錯誤しながら prototype.js を理解しました。 自分が学んでいる間にメモを取り、それを他の人たちと共有することは価値があるのでは、と考えたのです。 加えて、このライブラリによって提供されているオブジェクト、クラス、関数、拡張機能についての 非公式リファレンス も提供しています。 ここで提供する例とリファレンス
2001年11月5日 作成 2001年11月11日 追記: 「関連」の3番目の項目 目次 概要 検証実験 脅威 Microsoftの公式見解 クリップボードの盗聴を防止する設定 関連 FAQ 概要 MicrosoftのWebブラウザ「Internet Explorer」(以下「IE」と略す)には、 「スクリプトによる貼り付け」という名の機能があります。これは、 「JScript」(JavaScriptをMicrosoftが独自拡張した言語の名称)の 独自機能のひとつで、 var str = clipboardData.getData("Text"); という一文で、 システムのクリップボードの中身を取り出せる機能です。 これは、おそらく、Web上のサービスでカット&ペースト機能をJScriptで 実現するために用意された機能と考えられます。 しかし、この機能が悪用されると、 悪意のあるペー
NULL::colors Firefox Only. カラージェネレータ こういうツールは IE に対応させても嬉しくないので IE にはハナから対応させる気がありません。(IE コンパチじゃない、すなわちオリジナルの Triangle Color Selector を微妙に改良したのを使用) Opera には対応させようと思ったんだけど、なんかいろんな処理がいちいち4回走ってうざいのでやめた。 色の計算式はソレっぽくなるのを試行錯誤してみた。これから変わるかもしれない。処理自体はごく単純。 むしろ俺が色の計算式を変えて遊ぶのが楽しい。だからユーザが動的に計算式変えられるようにしたら面白いのかもしれない。とりあえずめんどっちいのでアイデアだけメモ。 クリック&ドラッグがうまくいかなかったのは preventDefault() をやってなかったからだった。 ロード直後の真っ白なパレットに、T
Ruby on Railsなどのフレームワークに標準付属されていて、オブジェクト指向なJavaScriptを書く人たちの間で注目されているprototype.jsですが、Version 1.3.1時点での機能についての解説書は見つけたものの(prototype.js v1.3.1 の使い方)、1.4系で盛り込まれるであろうEnumerableについては見つけることができませんでした。なので、Version 1.4.0_rc4時点でのEnumerableについて解説してみます。 Enumerableとは、配列やハッシュなどのデータ構造に対して繰り返し処理をさせるための機能を集めたものです。たとえば配列に入っている値それぞれについて処理を行いたかった場合、従来ならば以下のように書いていたでしょう。 var data = [1,2,3,4]; for(var i=0; i<data.length
KsGMap に関係なく、Google Maps API を用いた地図にそのまま組みこめる Tips です。 マウスのホイール(ボタンの真ん中のぐりぐり回すヤツ)で、マップの尺度を変更します。 KsGMap や はてなマップ と同じように奥へ回転させる拡大、手前に回転させると縮小します。 サンプル //マウスホイールのイベントを追加 if( navigator.userAgent.match( "MSIE" ) ){ document.getElementById( "map" ).attachEvent( "onmousewheel" , mouseWheelZooming ); } if( navigator.userAgent.match( "Gecko" ) ){ document.getElementById( "map" ).addEventListener( "DOMMous
This shop will be powered by Are you the store owner? Log in here
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く