Ajaxian » New Yahoo! Homepage gets Ajaxy
There are a lot of nice dhtml features on the new site, but instead of covering them again, one of the interesting ideas was the top widget that walks you through “what is new”.
JAPANのほうではないですが。
直にhttp://www.yahoo.com/にいくと元のままなのですが、いちどプレビューのhttp://yahoo.com/previewを踏むとクッキーに焼くらしく、以降は新しいインターフェースになります。
ソースはobfuscationされていないのでフツーに読めます。Prototypeなどのライブラリを使わずに、ベタ実装してますね。こういうコードを読むのはおもしろい。
Yahoo! JAPANも追従するのだろうか。
Virtual Karma: Stealth Submit Using AJAX | Rian’s blog
Have you ever started filling a web form and halfway into it decide against submitting because suddenly you no longer trust the website enough? You closed the browser window and that was the end of story, right? Wrong!
via Ajaxian – http://ajaxian.com/archives/sneaky-submissions-supported-by-ajax
WebフォームでSubmitを押さなくても入力内容を送信しちゃうというサンプル。
アンケートフォームが長くて途中で止められてしまったときにも、何を入力していたか、また、それを集めることによってどこで入力を止める人が多いかという統計がとれちゃったりするわけですな。グレーだけど。
ところで、

—– AJAXではなくAjaxだ、バカもんが。
自分の過去記事を読んだら、「AJAX」だったり「Ajax」だったりバラバラでした。stupid…
ソース読んでもよく理解できなくてなおざり(notおざなり)にしていたPrototypeなのですが、今号のnaoyaさんの記事を読んでブレイクスルー。ひさしぶりのこの感覚。
「:」の出てくるJavaScriptのコードがまったく分からなかったのだけれど、今はその分からなかったのが分からないくらい分かる。すげぇおもしろいじゃないか。
ところで、公式サイトでは「prototype.js」って表記はしてないのに気がついた。プロダクト名は「Prototype」。
でも「.js」つけないと話しづらいからみんなファイル名の「prototype.js」を使ってるんだな、きっと。
また小さなことに引っかかってしまった。そして夜は更ける。
PHPとJavascriptのソースコードを簡易暗号化:POBS:phpspot開発日誌
POBSを使えばPHPとJavascriptのコードを簡易暗号化することが可能。
以前Googleサジェストの挙動を実現したくてJavaScriptを読んだことがありました。→コレ
で、そのときにすごく読みにくいことになってて、暗号化するツールがあるんだろうなとか思ってたんですが、そういう類のモノが「obfuscator」というジャンルに属すことを知りました。
phpspot開発日誌さんで紹介されてるのはPHPで作られた「PHPとJavaScript」を対象にしたものですが、ググってみるといろんなコードを対象にしたものがあるようですね。
そして、変数名なども人間が読める必要がないってことで短くなってたり、インデントやコメントが省略されてたりでソース自体のサイズが小さくなるっていうところもポイントです。
まぁ、根気よく整形すれば読めるようにはなりますが、かなりつらいです。
AJAXのXを担うXMLHttpRequestまたはHttpRequestですが、このクラスのインスタンスメソッドopen()の3つめのパラメータAsyncについていまさらながら。
おなじく最初のAが示すようにいつもはtrueにしてますが、Syncにしようとfalseにしたところ、Firefox(1.0.6)とIE(6.0SP2)で挙動に差が・・・。
IEではサーバの処理を待ってレスポンスが返ってくるものの、Firefoxではサーバの処理を待つもレスポンスが返ってこない。
というかイベントonreadystatechangeが起こらない?
GETでもPOSTでも同じ。なにか間違ってるんだろうか。
スラッシュドット ジャパン | Google MapsのAPIが公開される
ということで、さっそくAPI Keyを取得してさわってみました。
サンプルがあったのでペタっとやってみる・・・やべぇ、簡単だ。
APIのドキュメントを読んでも、そんなに難しい感じではない。
とりあえず「東京都千代田区外神田」あたりの座標を指定してみる。
んーと・・・でない。
「日本はSatelliteモードだけ」→「APIはMapモードだけ」→「日本はまだダメ」ということ?
とりあえずなにも出ないとアレなので、サンプルのデフォルトに戻す。
改行コードは直に書けないので、"\n"というようにエスケープシーケンスを使って書きなさいという正解が書いてある元を見つけた。 from ECMA
このPDFの(PCF管理の)32ページの「7.8.5 Regular Expression Literals」の上の「NOTE」。
ここでは"\n"となっているが、such asなので、"\r"はどうするとかは明記してない。
やはり改行コードを何にするかはOS依存といったところか。
<div id="foo"></div>
に内容をセットする場合に
var foo = document.getElementById("foo");
として参照を取得したとき、このfooに内容をセットする方法について。
続きを読む…
キー押下時などのイベント情報を取得しようとして気がついたこと。
onclickやonkeydownのイベント発生時に「event」オブジェクトから、マウスカーソルの位置や、押されたキーが取得できるが、この「event」のスコープがIEとFirefoxで異なる。
IEではグローバルとして宣言した変数と同様にどこでも取得できるのだが、Firefoxではイベントの属性の中でないと取得できない。
具体的には・・・
続きを読む…
XULのイベントで「oninput」というのがある。
<input type="text" value="" oninput="foobar()" />
の様に置いておくと、valueが変更された時に随時イベントが起きる。
JavaScriptにも「onchange」があるじゃないかという声が聞こえそうだが、微妙に違う。
「onchange」は「フォーカスが外れたとき」valueが変更されていたら起きるイベントであり、タイプ中には起こらない。
続きを読む…