Rainbow for Firebug :: Firefox Add-ons FireBugのJavaScriptをハイライト表示する拡張「Rainbow」 次のように、FireBugの色分けをしてくれる。 プレーンテキストで読みづらいなぁ、と思っていましたが、こういうエクステンションがあったんですね。 関連エントリ PHPのログをFirebugのコンソールへ出力する例 IEでのデバッグ/動作確認に便利なソフトいろいろ Firebug1.1betaバージョンが公開
Rainbow for Firebug :: Firefox Add-ons FireBugのJavaScriptをハイライト表示する拡張「Rainbow」 次のように、FireBugの色分けをしてくれる。 プレーンテキストで読みづらいなぁ、と思っていましたが、こういうエクステンションがあったんですね。 関連エントリ PHPのログをFirebugのコンソールへ出力する例 IEでのデバッグ/動作確認に便利なソフトいろいろ Firebug1.1betaバージョンが公開
 
  
  nsIURIのインスタンスには2種類ある XULを扱っていると、nsIURIというインターフェースを使う必要のある場面が頻繁に出てきます。大概のメソッドでは、Web上のリソースもローカルのファイルも位置情報をこのnsIURIの形で渡してやれば万事OKなのですが、希に処理に失敗する場合があります。僕は、バックアップしておいた情報からブラウザのヒストリを復元する処理でこの問題に引っかかりました。 これは、「nsIURIのインスタンス」として生成したインスタンスはそのままではnsIFileURLとして扱えないからというのが原因でした。詳しく言うと、nsIURIのインスタンスは Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI) で生成することが
指定したURLのデータをダウンロードし、指定したパスのファイルへと保存するだけの簡単なコードを作る。 まずは URL 文字列から nsIURL オブジェクトを、ファイルパスから nsILocalFile オブジェクトを生成する。 const URL_SPEC = "http://www.mozilla.com/img/firefox-title.png"; const FILE_PATH = "C:firefox-title.png"; // make nsIURL var url = Cc["@mozilla.org/network/standard-url;1"].createInstance(Ci.nsIURL); url.spec = URL_SPEC; // make nsILocalFile var file = Cc["@mozilla.org/file/local;1"].
URI で示されたリソースをファイルとして保存する場合、リンク先を保存などで実際に使われている処理を参考にすると、簡単に記述することができます。 nsIWebBrowserPersist を使う リソースの保存には nsIWebBrowserPersist の saveURI というメソッドが使えます。このメソッドは引数として URI オブジェクトとファイルオブジェクトを必要とします。 下準備 まず、 URI を示す文字列から URI オブジェクトを作ります。 var targetURI = Components.classes['@mozilla.org/network/io-service;1'] .getService(Components.interfaces.nsIIOService) .newURI(uri, null, null); 次に、ファイルパスを示す文字列からファイル
MySpaceのMP3ファイルにID3tagを埋め込みつつダウンロードするJSActionsスクリプト でやっているダウンロードしながらファイルを加工してその進行状況をダウンロードマネージャに表示する、っていうのが簡単じゃなかったのでご紹介。でもextensionっぽいの書いて2日目なので違うところも多々あると思うので間違ってたら指摘していただけるとうれしいです。 ふつうにダウンロードして保存するだけだったらこれですみます。 var dm = Components.classes["@mozilla.org/download-manager;1"] .getService(Components.interfaces.nsIDownloadManager); var persist = Components.classes["@mozilla.org/embedding/browser/ns
New in JavaScript 1.7 - MDC JavaScript1.7 の yield を使って、非同期処理を同期処理のように書く方法 - IT戦記 // ==UserScript== // @name defer // @namespace http://mayokara.info/ // @description sample script // @include http://* // ==/UserScript== (function(cdata){ // type指定しないとyieldが使えない var s = document.createElement("script"); s.type = "application/javascript;version=1.7"; s.textContent = cdata.toString(); var head = docu
資料 XUL Tips&Technics XULアプリの開発環境を整える Javascript関係 そろそろきっちりJavaScript - 良質記事 javascript/tips 「JavaScriptはprototypeベース」を再確認 mozilla developer center Javascript XPCOM XML XUL DOM XBL RDF CSS Storage Observer Notifications XPCOMUtils.jsm XPCOM string guide - IDL XULPlanet - 古いけどまだまだ必要 nsIFile nsILocalFile nsIURI nsIURL Mozilla Wiki XPCOM:nsIThreadManager SQLite が認識できる SQL Mozilla Dehydra Cross Referen
document.evaluate の第二引数に適切なノードを指定していても, XPath expression が "/" で始まるとルートノードから走査されるので, 意図通りの結果が得られない可能性が高い. ありがちなのは AutoPagerize で 2 ページ目以降を処理しようとして XPath に "//" を使ってしまい,結局ページ内の全ノードを舐めてしまうとか. 面倒でも "descendant::" もしくは "descendant-or-self::" を使用されたい. もしくは, getElementsByTagName で済む場合であればそちらを使えば意図通りの結果が得られるし, なにより速いはず. 一応,実験 (要 javascript/).IE では動作しない.
「Greasemonkeyスクリプトとウインドウ間で安全に通信する」にて、DOM イベントを用いた Web ページと Greasemonkey スクリプトとの通信について述べられています。そちらでは dispatchEvent メソッドの返り値による 1 bit 通信に触れていますが、やはりもっと自由にデータをやり取りしたいもの。そのためにはどのような方法があるでしょうか。 独自プロパティ 真っ先に思いつくのは、Web ページ側でイベントオブジェクトを作成した際、独自プロパティを追加する方法ですが、これはだめです。Greasemonkey スクリプト側ではイベントオブジェクトの独自プロパティを取得できません。event.wrappedJSObject.myProperty のように wrappedJSObject を介せば取得できますが、せっかく安全のため Firefox 側でラッパーに包
バグなのか仕様変更なのかはよく分かりません。 Firebugが入っている状態で、こんなグリモンを入れてリロードしてみると、 // ==UserScript== // @name Date test // @namespace hogehoge // @include * // ==/UserScript== (function () { with (unsafeWindow) { console.log('begin'); try{ new Date(); }catch(e){ console.dir(e); } console.log('end'); } })(); greasemonkey.jsで発生した例外がconsoleに吐かれます。 ちなみにwith (unsafeWindow) {}の外で、new Date()をやる分には問題なし。
追記2008.6.24 イベントによる通信について、nanto_viさんがGreasemonkey スクリプトとイベントで通信: Days on the Moonでより有用でフォーマルな情報を提供されています。 まじめに書こうと思ったら予想より使えなかった。 むかしsnj14がはてなブックマークが勝手にj/kにキー割り当てて、サービスはデータを出すだけにしてUIはユーザが好きにできるようにするべきだっていうのを書いてた気がするけど見つけられませんでした。 自分は、そうはいってもfirefox+Greasemonkey+LDRizeのようなUIの統一を図るスクリプトが極めてマイナーな現状でサービスがいらんことすんなっていうのも、ついていけない正しい話だなーと思ってるので、まずはLDRizeがあったら独自のバインディングをやめる、という妥協策が必要だと思う。そうすればはてなブックマークでj/k
多少のプログラミング経験があれば、Firefoxアドオンを作るのはそんなに難しくない。自作アドオンを作るためのハウツーを紹介する。 ここで自家製Firefoxアドオンをリリースし始めて以来、何人ものユーザーから「Firefoxアドオンを作るのは難しいの?」という問い合わせを受けた。多少プログラミングの経験がある人なら、その答えは「そんなに難しくない」だ。 Firefoxアドオンの中身はJavascript――ブックマークレットや従来のWebページで使われている、あまりミステリアスではない言語――とXUL(「ズール」と発音する)というマークアップ言語だ。独自のアドオンを作るには、ある程度のJavascriptのノウハウとXMLファイルの快適な編集、それからお気に入りのブラウザを思いのままにすることへの健全な好奇心が必要だ。 わたしがWeb上のフリーチュートリアルを使ってFirefoxアドオン
 
      
  Greasespot: Greasemonkey Version 0.8 以下は http://www.example.com/foo/bar/baz.user.js からインストールしたという前提。 @resource // @resource resourceName1 http://www.example.com/resource1.png // @resource resourceName2 resource2.js // @resource resourceName3 /resource3.cssスクリプトと同じディレクトリに2つ目のキーで指定したリソースが保存される。resourceName2はhttp://www.example.com/foo/bar/resource2.js、resourceName3はhttp://www.example.com/resource3.cs
javascript, asE4X の変数展開が E4Xで変数展開、テンプレート - 素人がプログラミングを勉強するブログ で取り上げられていた。 var foo=123; <>変数fooは{foo}です。.toString(); // "変数fooは123です。" ほー。仕様書ではE4XのリテラルXMLでの式評価 - 0x廃棄階層 - 統治局 によると、仕様書には次のようなコードがあるらしい。 var tagname = "name"; var attributename = "id"; var attributevalue = 5; var content = "Fred"; var x = {tagname} {attributename}={attributevalue}>{content}{tagname}>; // Fred タグ名にも属性名にも属性の値にもタグの中身にも使える
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
id:brazil さんのブックマークで知ったのだが、 Firebugには、便利な組み込み関数が定義されているようだ。 一通りさわってみたのだが、 $x() で 任意のXPath要素が取得できるのとかに感動した。 そして、やっぱりちゃんとドキュメント読むべきだなぁと思った。 XPathから要素を取得する。 $x("/html/body/h1"); -> 要素の配列が返ってくる。 selector名から要素を取得する。(getElementsByTagName) $$("h1") -> 要素の配列 所要時間測定 console#time, console#timeEnd time ~ timeEnd で囲んだ部分の所要時間を 計測することが出来るみたいで、 以下のような関数にまとめると良さそうだ。 function bench( callback ) { var uniq_id = Date
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
