JavaScriptXUL Tutorial:Keyboard Shortcuts - MDC keydownイベントで使う。「CTRL + SHIFT + CLOSE_BRACKET」みたいに、押されたキーの文字列表現を取得した。 function keyString(e){ var table = []; for(var name in e) if(name.indexOf('DOM_VK_')==0) table[e[name]] = name.substring(7); return (keyString = function(e){ var code = e.keyCode; switch (code) { case e.DOM_VK_CONTROL: case e.DOM_VK_SHIFT: case e.DOM_VK_ALT: return ''; } var res =
JavaScript こういうふうに、チェックボックスとラベルの間に画像を表示する。 XUL:checkbox - MDC 上のリファレンス通り、以下みたいに書いてもうまくいかない。 以下のように書くとうまくいく。 Mozilla Firefox/chrome/toolkit.jar を展開し、XBLファイル content/global/bindings/checkbox.xml を開いて調べた。こんなふうに書いてあって、チェックボックスと画像とラベルから成っていて、src属性が引き継がれることがわかる。 また、各々の内部要素のクラス名も確認できる。chrome://global/content/bindings/checkbox.xml を、Firefoxで直接開いて確認してもいい。Mozilla Firefox/chrome/classic.jar の skin/classic
XPCOMオブジェクトのインターフェースを一覧する JavaScript mozilla mozilla/extensions/cview/resources/content/cview-utils.js オブジェクト/インスタンスがどのインターフェイスを実装しているかは、Components.interfacesの全てのインターフェースをオブジェクトに当てはめてチェックすることで調べることができる。 オブジェクトが、そのインターフェースを実装しているかは、QueryInterfaceを実行しなくても、instanceofで調べることができた。 速度も、こちらの方が早かった。 function getInterfaces(obj){ var result = []; for (var i in Components.interfaces) { var ifc = Components.in
JavaScriptLDR + GoogleWebHistoryで使った。 インスタンスを作って、処理を追加(push)するだけでスタート。実行中でも、停止後でも、いつでも処理を追加できる。タイマーは一個なので、処理は直列で実行されてく。 function Stack(interval){ var interval = interval==null? 100 : interval; var q = []; var iid = null; this.push = function(fs){ if(typeof(fs)=='function'){ q.push(fs); } else { while(fs.length) q.push(fs.shift()); } if(iid!=null) return; iid = setInterval(function(){ q.shift()();
E4X、XMLオブジェクトをDOMのElementに変換する JavaScript 前は、適当なspan要素のinnerHTMLに入れて変換してたんだけど、tr要素がうまくいかなかったので書き直した。 function xml2dom(xml){ var elm = document.createElement('table'); elm.innerHTML = xml.toXMLString(); return elm.firstChild.tagName.toLowerCase()=='tbody'? elm.firstChild.firstChild : elm.firstChild; } こんな感じに使います。 table.appendChild(xml2dom(<tr> <td>値</td> <td>1000</td> </tr>)); Permalink | コメント(0) |
JavaScript var url = 'http://zigorou:hogehoge@www.google.co.jp:8080/foo/bar/hoge.js;aaa?foo=bar#hoge'; var Cc = Components.classes; var Ci = Components.interfaces; var IOService = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService); var uri = IOService.newURI(url, null, null).QueryInterface(Ci.nsIURL); // 相対パスの解決 is(uri.resolve('../fuga.css'), 'http://zigorou:hogehoge@www.google.co
JavaScript 追記Firefox 3.0で確認したところエラーになった。 Firefox 2.0.0.13で確認しました。 var url = 'http://localhost:8080/index.html'; var referrer = 'http://www.hatena.ne.jp/'; var req = new XMLHttpRequest(); req.open('GET', url, true); req.onreadystatechange = function(){ // 1: 読み込み中 if(req.readyState == 1) req.setRequestHeader('Referer', referrer); // 4: 準備完了 if(req.readyState != 4) return; console.log(req.responseTe
JavaScriptなんか、ひさしぶりに技術関係で照れるなー、ただいまー。 絶対に便器! べんきさんのCacheViewerのコードが、すごく役立ちました、ありがとう。 Firefox、XPCOM、特定のURLのキャッシュファイルを取得するコード、だいたいこんな感じ。visitEntriesの中で、openCacheEntryをするとロックしてしまいFirefoxが終了できなくなるので注意。 const ICache = Ci.nsICache; const CacheService = Cc['@mozilla.org/network/cache-service;1'].getService(Ci.nsICacheService); function findCacheFile(url){ var entry; CacheService.visitEntries({ visitDevic
IMEOFF ビジネスの場でIMEはごく当たり前に使われている。今回紹介するオープンソース・ソフトウェアはフォーカスが変るタイミングで、こまめにIMEをオフにするFirefox拡張だ。同一ページの中のフォーカスの移動では変りません。使ってみたいと思った人も多いのではないだろうか。それを実現するのがこのソフトウェアだ。 ロケーションバーでキーワードつきのブックマークを呼び出すときに失敗して全角で入力してしまこととかなくなります。そんな時に役立つのがこれだ。LDRや、IJK/LDRizeなど、ショートカットキーがメインの場面で空打ちしてガッカリしなくてすみます。その苦痛を和らげてくれるのがこのソフトウェアだ。 poafagが、対象ページ/対象外ページみたいなのを設定できる方がいいと言ってたので対応するかも。いるんかなー。全ページ適用系は、Greasemonkeyよりも拡張の方が軽いと思う。利用
続、Greasemonekyスクリプトのサンドボックスに値を追加する JavaScript Greasemonekyスクリプトのサンドボックスに値を追加する - 実用 上記エントリで書いた内容を安全性の面から、追跡して調べてみました。 まずは前回同様、以下コードにて、GM_testという関数をGreasemonkeyのサンドボックスに追加します。 これはbrowser.xulにオーバーレイしている部分と、XPCOMの中、2箇所で実行してみましたが、結果はどちらも同じでした。 var GreasemonkeyService = Components.classes["@greasemonkey.mozdev.org/greasemonkey-service;1"].getService().wrappedJSObject; addBefore(GreasemonkeyService, 'ev
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く