以下のブログで JavaScript 1.8 の新文法が紹介されています。 http://ejohn.org/blog/javascript-18-progress/ MDC の資料 -> http://developer.mozilla.org/en/docs/New_in_JavaScript_1.8 その中でも無名関数についての新文法が楽しいので紹介します。 // 関数の中に文が一つでその評価値を return してるような関数は function(x) { return x * x } // 以下のように書ける function(x) x * x たとえば [1, 2, 3, 4, 5].filter(function(x) x < 3); // [1, 2] element.addEventListener('click', function(e) e.stopPropargat
今日は、まだまだ Safari 3 が熱い! window オブジェクトを走査していたら、またしても面白そうな関数を見つけてしまった。 その名も getMatchedCSSRules !!! まずはデモをご覧ください 以下のブックマークレットを任意のサイトで実行すると、コンテンツの下に DOM Inspector のような要素が出現します。 そこで、要素を開いていくと Safari の場合は、どの CSS ルールが当たっているかを見る事ができます。 javascript:(function(){var d=document,s=d.createElement('script');s.className='css-inspector-script';d.body.appendChild(s);s.src='http://amachang.art-code.org/cssInspector.j
getComputedStyle とは!? ある要素にどんなスタイルが当たっているかを計算してくれる。便利な関数。 使いかたはめっちゃ簡単! var style = getComputedStyle(element, ''); alert(style.fontSize); // 14px alert(style.color); // rgb(0, 0, 0) ちなみに第二引数は疑似要素の style を取りたい場合に使います。通常は空文字列でいい。 でも、 getComputedStyle はこのままでは IE, Safari では動かない。 Safari では window(グローバル領域) に getComputedStyle は定義されてなくて、 document.defaultView だけに getComputedStyle が定義されている。 ちなみに、 Firefox, Op
Future home of the ECMAScript programming language.ECMAScript Programming Language New to ECMAScript? Learn about the ECMAScript language Discover the ECMAScript community Implementing an ECMAScript engine? Read the documentation Download the ES4 reference interpreter Interested in ECMAScript Harmony? Read Brendan Eich's announcement of ECMAScript Harmony Get involved in the development of ECMAScr
UAIdentifier - JavaScript によるユーザエージェント判別 © 2006-2007 Magicant / 1.9.2 (2007-02-02) JavaScript を実行しているブラウザの種類およびそのレンダリングエンジン・オペレーティングシステムの種類を判別します。 テストページで実際に試すことができます。 uai.js は自由に使用していただいて構いません。 目次 uai.js の使い方 uai.js の API 仕様 UAIdentifier コンストラクタ toString メソッド 各プロパティ 判別機能の詳細 判定結果の使い方 uai.js の使い方 実装ファイルは uai.js です。 このファイルは単独では実行しても意味がありません。 uai.js には UAIdentifier オブジェクトの定義が含まれ
prototype.js使っていてうれしいことの一つにbindが使えるというのがある。$()とかAjaxのクロスブラウザ対策とかもいいけれど、thisをbindできるのは大きなメリットだと思う。bindがないとどういう時に苦労するかというと、以下のような場面。 var Foo = function(name) { this.name = name; } Foo.prototype.talk = function(message) { alert(this.name + ": " + message); } function inScope() { var foo = new Foo("foo"); setTimeout('foo.talk("Hello World!")', 0); } inScope(); これは実行できない。なぜかというとsetTimeoutに渡しているfooという変数
今までこう書いてたのが count[key] = count[key] ? count[key] + 1 : 1; こう書けることが判明した。 count[key] = ++count[key] || 1; コメント欄への回答 count[key]がNumberまたはundefinedであるとして、個人的には count[key] = (count[key] || 0) + 1; のほうが好みです。 JavaScriptでは問題ないとはいえ、言語によってはi = ++iの動作が未定義だったりするので。 前者の書き方とこの書き方は実は問題があって、Object.prototypeに定義されてるメソッドとハッシュのキー名がかぶるとおかしくなる。なので本当はcount.hasOwnProperty(key)でチェックするのが正しいのだけれど、出現回数のカウントごときでメソッド呼び出しとかしたくな
Note: Any future development of the JSCoverage code base will likely occur in the new JSCover project on GitHub, which reuses a substantial amount of JSCoverage code and aims for a high degree of backward compatibility with JSCoverage. JSCoverage itself is unlikely to have any further releases. JSCoverage is a tool that measures code coverage for JavaScript programs. Code coverage statistics show
JavaScript 2007/7/9戦争 - TumblrにポストするJSActionsスクリプト、2007/6/10版 アップデートし、包括的な説明を書きました。 ShareOnTumblr TumblrへポストするJSActionsをアップデートした。大きく良くなってる。前回からの変更点は以下。 ・ポスト後自動でウィンドウを閉じるように エラーが発生すると閉じずに残る。 容量超過エラーは補足できず成功したように閉じてしまうようなので注意。・画像を直接開いている場合のタイトルをファイル名のみに変更「ABC.jpg (JPEG 画像, 399x600 px) - 表示倍率 (75%)」ではなく「ABC.jpg」だけに。・Linkタイプのポスト追加画像の上でもなく、テキストも選択されていない場合は、Linkとしてポストされる。 コード内のLINK_ADD_THUMBNAILをtrueにする
The Prototype 1.5.1 makes Safari crash. 最近リリースされた prototype.js のバージョン 1.5.1 は、うちの Safari ( Safari 1.3.2 )をクラッシュさせる。 困った。機能が使えないということはさておいて、 Prototype はとてもポピュラーなライブラリだから、あちこちのサイトで利用されているだろう。つまり、あちこちのサイトで、うちのブラウザがクラッシュしてしまうことに、なるだろうから。 それを発見したのは、 Prototype を拡張するほかのライブラリを試してみた時だった。とてもよいライブラリだったのでぜひ使いたかったのだけれども、どうしてもクラッシュする。がっかりした。 でもやっぱり使いたいほうが勝って、せめてどこが悪いのかその場所だけでも突きとめて、作者に「 Safari を見捨てないで」と言う願いをこめた
http://ajaxian.com/archives/subspace-enabling-trusted-cross-domain-ajax http://www2007.org/papers/paper801.pdf これ読んだときは単純に「へー、これでJSONPみたいなのを気軽にできるんだったらまあいい話なのかなあ」とか思ったんだけど、あくまでJavaScript読み込み元のページへの無制限リソースアクセスができちゃうのをSandboxにとどめるための手法ってだけなんで、たとえばブラクラみたいなコードをダウンロードしちゃったときはブラウザ全体でアウトになるから、やっぱそのレベルまで考えるんであれば使えないよなあ。 まあ言ってることの有用度はともかく、さまざまなクロスドメインコミュニケーションの手法とかが整理されていて、そういう意味でいい資料だとおもう。 とりあえずCross Doma
昨日の日記に対して、id:ikepyonさんからトラックバックを頂戴した。内容はそちら(Tipsと考え方とXSS対策)を読んでいただくとして、興味深いテーマなので少し突っ込んでみたい。 # 日によって「です・ます」で書いたり、「だ・である」で書いているのは気分の問題なので、あまり気にしないでいただきたい Tipsだけでなく、物事の本質を見極め、何が危険で、何が安全なのかということを考える必要があると思う。 昨日の記事は、(一般的な)XSS対策として、どの文字をエスケープするのが「本質的」だったかを考えたかったのであって、あれをTipsととらえると確かに失敗する。 JavaScriptのスクリプトなどが入っている場合も昨日と同じ方法論で考えることは可能である。まずはこれを検討してみよう。 スクリプトがonXXXのイベントハンドラとして記述されている場合 この場合は、HTMLタグの属性値として
5/11の日記XSS対策:JavaScriptなどのエスケープ - ockeghem(徳丸浩)の日記に対する金床さんのコメントに触発されて、JavaScriptのエスケープについて検討してみよう。ただし、現実のアプリケーション開発においては、私はJavaScriptの動的生成を推奨していないが、これはエスケープ処理をどのように考えるかと言うレッスンのつもりで検討することにする。 金床さんのコメントで紹介されたリンクには、以下のようなガイドライン案が提案されている。 JavaScriptの文字列でのエスケープ手順としては、以下が今のところ正解っぽい感じです。 1. 「\」を「\\」に置換する 2. 「"」を「\"」に置換する 3. 「'」を「\'」に置換する 4. 「/」を「\/」に置換する 5. 「<」を「\x3c」に置換する 6. 「>」を「\x3e」に置換する 7. 「0x0D(CR)
with(Components) var jsd = classes['@mozilla.org/js/jsd/debugger-service;1'] .getService(interfaces.jsdIDebuggerService); var store = new なんかストレージっぽいもの; function hook() { jsd.enumerateScripts({enumerateScript: function(s){store.add(s)}}); jsd.scriptHook = { onScriptCreated: function(s) {store.add(s)}, onScriptDestroyed: function(s) {store.remove(s)} }; } jsd.breakpointHook = { onExecute: function(
Looking for information about Informa TechTarget products and services? The commercial homepage has moved. Visit Informa TechTarget News 30 Jul 2025 / Cloud Providers Microsoft Q4 earnings surge on cloud results; AI gains steam Booming cloud business drove fourth-quarter and full-year results past analyst expectations as the AI race continues to heat up. 30 Jul 2025 / Clinical documentation Ambien
コンソール上から JavaScript で Web ブラウザを操作できる、JS Commander というプログラムを作ってみました。JS Commander を立ち上げるとプロキシサーバが同時に起動し、このプロキシサーバを使うように Web ブラウザを設定すると、コンソール上で JavaScript のコードが入力できるようになります。Web ブラウザ上の JavaScript を自由に実行できるコンソールには FireBug, FireBug Lite, jsh, MozRepl などがありますが、JS Commander の特徴は以下のような感じです。ブラウザ非依存 - XmlHttpRequest が使えるブラウザであればたぶん動きます。readline を使った操作 - bash などのシェルと同じような emacs 風キーバインドが使えます。別のマシンにあるブラウザも操作可能
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く