はじめに XULイベントは、以前の XULNote でかなり一般的なやり方が紹介されました。 しかし、XUL でイベントを効果的に使用するには、イベントが発生し、聞きとられ、処理される、実際の過程を意識しなければなりません。 併せて、この過程は XULイベントモデルとして参照されます。 このイベントモデルは、複数のXULファイルを合わせて単一のインターフェースに、さらに振る舞いを XULウィジェットにつなげることを可能にするものです。 というのも、ユーザーのアクションをつかまえて、インターフェースで対応するアクションに翻訳するのはイベンドだからです。 次のイメージは、様々なイベントモデルの役者たちがどのようにお互いでやりとりするのかについての、とても基本的な方法を示しています。 ユーザーはインターフェース上のボタンをクリックします。このボタンはユーザーのアクションに反応してイベントを起こし
クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler
getElementsByTagName Returns a NodeList of all the Elements with a given tag name in the order in which they are encountered in a preorder traversal of the Document tree. Document Object Model Core 書式 elements = document.getElementsByTagName(name) * elements は、ツリーに現れる順に並べられた、見つかった要素の生きた NodeList です。 * name は要素の名前を表す文字列です。特殊な文字列 "*" は全ての要素を表します。 document.getElementsByTagName - MDC これに気がつくまで、getElem
Firefox 3.1では、最新の高速化技術が惜しげもなく投入され、現行のFirefox 3.0.xから体感できるレベルでスピードアップが図られている。今回はその主要な技術を紹介する。 TraceMonkey TraceMonkeyは、FirefoxのJavaScriptエンジンであるSpiderMonkeyを拡張する技術で、Just-In-Time (JIT) コンパイラという機能によって、JavaScriptの実行速度を大幅にアップさせるものだ。最近では、GmailやGoogleマップのようなJavaScriptを多用するWebサービスが続々と登場しているため、この技術のもつ意義は大きい。コンテンツの表示が目に見えて速くなるのだから。 元になったのは、カリフォルニア大学アーバイン校(UC Irvine)で開発された"Trace Trees"という技術である。もともとMozillaでは、
第1回 そろそろ本気で学びませんか? | Think IT これ、今この記事書いてる時点で650以上ものブクマがされているんだけれども、あまり内容がよろしくない。 というのも、解説はとても丁寧ですごくよい内容なのだけど、サンプルコードの書き方がどうも古くさい。 onclick属性とか、今時のフロントエンドエンジニアはそんな書き方はしない(と思う)。 なぜonclickをあまり推奨しないのか やっぱり、エンジニアとデザイナーorマークアッパーとの分業の点でHTMLの属性にスクリプトを書いちゃうのはあんまりよろしくない。 たとえばの話だけど関数の名前を変えたかったり、だとか、HTMLを変更したり、っていうときにミスが起こりやすくなってしまう。 これは分業していなくてもどちらにしろ発生してしまうことだと思う。 他にも前に書いたのだけど、aタグとかでonclickしちゃうとhrefにreturn
2008-12-23 firefox tool 拡張機能にするほどでもないちょっとした改良を、スクリプトファイルを書くだけで Firefox に施すことができるけど、使うにはちょっと敷居が高いツウ向けの拡張機能、userChrome.js の後継の拡張機能を alta88 氏が発表しました。zeniko 氏の userChrome.js の最終バージョンは 0.8 だったのですが、今度は微妙に名前が変わって、ドットなしの userChromeJS になっています。拡張機能の id も変わっているので、これまで userChrome.js を使っている人がインストールすると上書きされずに、userChrome.js 0.8 と userChromeJS 1.0 が同居することになるので注意が必要です。 mozdev.org - userchromejs: index mozdev.org -
I gave my new fuzzer a break from testing TraceMonkey by asking it to look for differences between SpiderMonkey and JavaScriptCore. I have listed them below, with SpiderMonkey output above JavaScriptCore output. I have no idea how many of these are bugs (in SpiderMonkey or JavaScriptCore) and how many are ambiguous in the spec (intentionally or unintentionally). Early error reporting SpiderMonkey
AutoPagerize – Userscripts.org http://userscripts.org/scripts/show/8551 SITEINFOの取得先につながらない場合の処理を追加 application/xhtml+xml のページへの対応の修正(0.0.33) wedataに繋らないせいで動かなくなってしまっていました。すいません。しばらく(30秒)繋らない場合、もう1日同じSITEINFOを使うようにしました。最初だけしばらく待つ必要がありますが、SITEINFOのキャッシュが残っていればwedataが繋らなくても動くようになります。 キャッシュがなくなっている場合や新規のインストールの場合は、wedataがもとに戻るまでもうしばらくお待ちください。どうしても早くなんとかしたい方は、os0xさんの記事を参考にソースを書き換えてください。 wedataのダウンでAut
いくつかの方法がありますので、順に説明しましょう。 window._content あるいは getBrowser().contentDocument.defaultView この両者では、現在表示されている内容領域の window オブジェクトを得ることができます。しかし、フレームを使用したページの場合、トップレベルのフレーム( window.top )しか参照できません。 document.popupNode.ownerDocument.defaultView document.popupNode.ownerDocument.defaultView は「最後にポップアップメニューを開いた要素が含まれる document オブジェクトが所属している window オブジェクト」で、コンテキストメニューの中で参照すれば、メニューを開いたフレームを確実に参照できます。 ただし、 docume
Hoy en día, no necesitas un ordenador potente para editar vídeos con estilo. Con solo un móvil y una buena app, puedes crear contenido impresionante para redes sociales, proyectos personales o incluso trabajos profesionales. ¿Por qué editar vídeos desde el móvil? Editar desde el móvil es práctico, rápido y cada vez más eficiente. Muchas apps […]
gihyo.jpに目次などが掲載されたので告知します。 今回はFirefox徹底カスタマイズ術という事で、イントロダクションとGreasemonkeyとUbiquityを僕が、Vimperatorをid:zenpouこと僕の同僚の高瀬さんが、Firemacsを作者の山本和彦さんが、FireGesturesを作者のGomitaさんが担当して記事を書かせていただきました。 今回の依頼はJavascriptでカスタマイズできる拡張を中心に紹介して欲しいということで、上記のようなメンバーに声をかけました。Vimperatorについてはid:zenpouさんが普段から使ってるのを見ていて、YOU書いちゃいなよ!と誘って書いてもらいました(w まだ見本誌が手元に届いてないので僕の部分しか内容をチェックしてないのですが、結構しっかりとした記事を書けたかと思います。UbiquityについてはAza Ras
Inline Code Finder Firefox extension – find inline JavaScript events, inline styling and javascript:links Published on Tuesday, December 16, 2008 When I first coded and released Obtrusive JavaScript Checker, I had some more ideas with it, as well as some great feedback I have received and wanted to see to. The result is Inline Code Finder, which looks for inline styling as well as what the Obtrusi
RDFデータソースの使い方について簡単にまとめてみました. RDFデータソースはFirefoxでデータを扱う上で重要な要素で, ブックマークや履歴など様々な場所で利用されている. XUL の tree 要素を使用する場合にはほぼ必須です. RDFについて RDFは, subject ----> [predicate(property)] ---> target という関係を表す. これをトリプル (triple) と呼ぶ. rdf/xmlで表すと, <subject> <predicate>target</predicate> </subject> とか, <subject predicate="target" /> とか. subjectにはリソースの場所を表すためのURIが必要. URI には, URL や URN などが用いられる. <subject rdf:about="urn:h
Firefox拡張機能で設定値を読み書きする (その2) - ess sup を参考にやってみた。 TwitterFoxのPopup表示のmaxはソース内で"5"とハードコーディングされているので、これを about:config からいじれるようにしてみる。 まず、TwitterFoxがインストールされているフォルダを探し出し、以前のエントリにあるようにTwitterfox.jarを展開してソースをいじれる状態にしておく。 準備ができたら以下のように修正 ※以下TwitterFoxが格納されているフォルダを (TwitterFoxHome) と記載 (TwitterFoxHome)\defaults\preferences\twitternotifier.js --- twitternotifier.js.orig Thu Jul 31 07:26:58 2008 +++ twitter
追記:コメントでbindToUntrustedContent="true"が必要になったと指摘をうけたので追加 2015/3/21 userContent.cssに @-moz-document domain("reader.livedoor.com") { #right_body > .item { -moz-binding: url("ldr.xml#filter") !important; } } と書いて、同じchromeディレクトリに、ldr.xmlという名前で <?xml version="1.0"?> <bindings xmlns="http://www.mozilla.org/xbl"> <binding id="filter" bindToUntrustedContent="true"> <implementation><constructor><![CDATA[ if
Historically one JavaScript property that’s seen a lot of use (mostly due to its convenience) is that of __proto__. It’s a quick-and-dirty way of accessing the original prototype property of the object’s constructor function. For example, the following is true: "test".__proto__ === String.prototype // Another alternative, not using __proto__ // Only works when constructor isn't changed "test".cons
A few months back, I prototyped a device feature that would allow the MouseEvent to also carry an attribute of how hard you were pushing down on the screen. This evening, Oleg Romashin, pushed an implementation into the mozilla-central. With this new addition, you can build a new class of interactions. For example, you could imagine a painting web application that varies the size of the pen’s stro
まぁ、かなり知られてる話ですが JavaScript は .(ドット) の計算がかなり遅い。まぁ、簡単なスクリプトなら問題にならないが。web2.0的には大違いなのであります。ちなみに、.(ドット) の計算に比較演算の 3 倍のコストがかかる(IEはとくに)。 ということで、for 文は下のように(比較に .(ドット) を使わない)書くくせをつけましょう。地道な差が大きなパフォーマンスを生みます。 // for 文 2.0 for(var i = 0, len = array.length; i < len; i++) { .... }各種ライブラリの for 文 1.0 を for 文 2.0 化するだけで、CPU 使用率がけっこう下がりました。 予断ですが、間違っても .(ドット) を避けるために with 文を使うようなことはやめてください。 with 文のコストは 比較演算の 8
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く