タグ

ブックマーク / teramako.hatenadiary.org (11)

  • constructor プロパティについて - hogehoge @teramako

    説明をつけておくと、constructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティで、そのオブジェクトが生成されたときに使われたコンストラクタが参照されています。 ミックスインパターン new this.constructor() の利用 - わからん たまたま見つけたので引用するけど、何処か別のところでも似たような勘違いが書かれていたように思う。もしかすると、このように勘違いしている人は多いのかもしれない。 正しておきたいと思う次第。 間違っているのはconstructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティという部分。 constructor プロパティが生成されるのは、Function オブジェクトが生成されたときです。 以下は、Function オブジェクトが作られる時の処理の流れの一部です。 Let proto be the r

    constructor プロパティについて - hogehoge @teramako
  • 初めてChrome拡張を作った DoNtTrackME - hogehoge @teramako

    ただ、お願いするだけの拡張。 manifest.json { "name": "DoNtTrackME", "description": "Do Not Track ME", "version": "0.1", "background_page": "background.html", "permissions": [ "webRequest", "webRequestBlocking", "*://*/*" ] } background.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>DoNtTrackME</title> </head> <body> <script> chrome.webRequest.onBeforeSendHeaders.addListener( function

    初めてChrome拡張を作った DoNtTrackME - hogehoge @teramako
  • console.log は printf 相当の機能が一部ある - hogehoge @teramako

    ある値を非同期で取ってくる→その値を使ってさらに非同期処理というのをJSDeferredでする - Islands in the byte stream 何気なく書かれているけど、console.log('got %s', foo);という部分があり、おや?と思った。 もしかして、Node.js 以外でも使えたりする? と調査。 まず、Operaは使えなかったので除外。 CodeGoogleChormeFirefox console.log("%s", "hoge")hogehoge console.log("%s", "hoge", "foo")hoge foohoge foo console.log("%s", "hoge", {foo:"FOO"})hoge ▸Objecthoge ({foo:"FOO"}) console.log("%d", 10)1010 console.log

    console.log は printf 相当の機能が一部ある - hogehoge @teramako
  • JetpackとGreasemonkeyが似ていると言われる件 - hogehoge @teramako

    たしかに両者は似ているところもあるのだが... 正直、僕はそんなに似ていると言いたくない。何か誤解を与えそうで怖いからだ。 いろいろと書く前に言葉の定義 Jetpack 拡張体 Greasemonkey 拡張体 JetpackScript Jetpackのエンジンで動作するスクリプト UserScript(ユーザスクリプト) Greasemonkeyのエンジンで動作するスクリプト 似ているところ Jetpack, Greasemonkey どちらも拡張機能であること どちらもスクリプトのエンジンであること JetpackScript, UserScript インストール/アンインストールにFirefox自体の再起動が必要ない JavaScriptで記述 制限を緩和するためのAPIがある 値を保持するためのAPI クロスサイトなXMLHttpRequest 似てないところ Jetpack

    JetpackとGreasemonkeyが似ていると言われる件 - hogehoge @teramako
  • Mozilla Jetpackについて調べたいこと - hogehoge @teramako

    Mozilla Labs Jetpack | Exploring new ways to extend and personalize the Web どうもWeb経由でインストールが可能っぽく、ステータスバーを更新しているサンプルからchromeコンテンツにアクセスできるっぽい。 スクリプトはどのコンテキストで実行されているのか Greasemonkeyのように個々のWebコンテンツ内か userChrome.jsのようにフルアクセスか chromeコンテキスト内だがevalInSandboxでxpconnectは禁止しているか 追記:2009-05-21T19:50 とりあえず、Components.utils.Sandboxを使って、evalInSandboxで実行しているみたい。ってことで気軽に作れる/インストールできる分制限がありますね。 また、拡張開発が簡単になると言われている

    Mozilla Jetpackについて調べたいこと - hogehoge @teramako
  • はてなブックマーク検索メモ - hogehoge @teramako

    http://b.hatena.ne.jp/id/search.data からブックマークのリストを取得可能。 パラメータは offset 取得開始位置 limit 取得数 返されるデータ 改行(LFコード)区切りのテキスト。 行数はlimit * 4(終端までいかなければ) 先頭から3/4行までが主なデータ 3行で1ブックマーク タイトル コメント(お馴染みの[タグ][...]コメント形式) URL 最後の1/4 1行に水平タブ区切りでブックマーク数\tブックマーク日付(%Y%m%d%H%M%S)(?)となっている 例 Trackbackをやめて、Google AJAX Feed APIを使って非リンクを表示 ::: creazy photograph [Google][ajax] http://creazy.net/2009/02/stop_tb_and_start_linkbacks

    はてなブックマーク検索メモ - hogehoge @teramako
  • FirefoxのSQLiteDBの再編成について(すこし詳細に) - hogehoge @teramako

    http://www.sio.no-ip.com/mt/shio/archives/2008/10/firefox-3-sqlit.html 物凄い人気ですね。 これについてちょっと詳しく書いてみようと思う。 DBファイルの断片化 WindowsのファイルシステムをデフラグしましょってやつはDBファイルにも言えることだ。 仕組みをLeo's Chronicle: データベースシステム入門:「データベースは体育会系図書館?」に習って「図書館」に例えてみる。 図書館 DBファイル 中身のデータ一行 といえるだろう。 単純にデータが追加されていくだけなら、棚の末尾に追加するだけなのでデータは詰まったままだし楽チンだ*1。 途中データの削除(を抜き取る)を考えてみる。抜き取った後を詰めないと空白ができる。 また、データ更新(の交換)を考えてみる。同じ大きさなら良いが。大きかったり、

    FirefoxのSQLiteDBの再編成について(すこし詳細に) - hogehoge @teramako
  • Greasemonkeyのソースがかなりアレな件 - hogehoge @teramako

    今、Greasemonkeyのソースを読んでる。実際にどうやってuser scriptを実装させているかの辺りを読んだ。 しかし、物凄い量のグローバル関数だ.... "GM_"と接頭辞が付いたものは、まぁ許そう。しかし、Config関数(というかクラス?)は止めてくれ。そこからさらに呼んでいるgetScriptFile関数もグローバル、さらにgetScriptDirもグローバルだ。 しかも、Configクラスの呼び出しにnew Config(getScriptFile("config.xml"))としているが、Configクラスの実装は function Config(){ this.onload = null; this.scripts = null; this.configFile = getScriptFile("config.xml"); } となっていて、引数が全く意味をなしてい

    Greasemonkeyのソースがかなりアレな件 - hogehoge @teramako
    aki77
    aki77 2008/02/14
    『#ユーザスクリプトの呼び出しタイミングはブラウザからDOMContentLoadedイベントが発行された時 #各スクリプトはそれぞれのComponents.util.Sandbox上で実行される#実行される時スクリプトの前後に(function(){\nと\n})()が付加される』
  • userChrome.css でブックマークツールバーフォルダをスマートに - hogehoge @teramako

    Firefoxのブックマークバーをアイコンでスマートにする機能拡張「Smart Bookmarks Bar」 おぉこれは良いアイデア。ただ、アイコンがあるページなら良いが、無い場合何のサイトか分からなくなる罠。アイコンが設定されていないものにはラベルを表示させておきたいのだ。 と、いうことで自作。DOM Inspectorと睨めっこして、userChrome.cssに以下を記述。 @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* ブックマークツールバーフォルダをスマートに {{{ */ hbox#bookmarks-ptf toolbarbutton[type="menu"] .toolbarbutton-text { display: none !important; }

    userChrome.css でブックマークツールバーフォルダをスマートに - hogehoge @teramako
  • イベントのkeyCodeとcharCode - hogehoge @teramako

    イベントのキーコードの取得には event.keyCode event.charCode の二種類があるんだが、keypressイベントとkeydownイベントとで出方が違うことに気付いた。 keypressとkeydownの表す数値は以下の通り keyCodeにはキーを表す特殊コードを表す数値として出る*1 charCodeにはASCII文字コード表に対応した10進数として出る 以下に幾つか試した結果を書くので参考に。ただ、特殊キーに当たりそうな(ex. windows,無変換, IMEオン時の挙動)ものは環境によって異なりそうなので注意。 keypress ASCII文字コードとして認識できるものはcharCodeに出る そうでないものはkeyCodeに出る IMEオン時にイベントが挙がることは期待できない((keyCodeに229で挙がる時と挙がらない時があった)) 押したキー ch

    イベントのkeyCodeとcharCode - hogehoge @teramako
  • DOM Elementオブジェクトをテキストダンプしてデバッグ - hogehoge @teramako

    DOM APIを使用して作ったDOMツリー、うまく生成されているか見てみたい事は多々ある。少なくともオイラはある。簡単にテキスト表示してくれると嬉しいなぁと常々思っていたのだが発見した。 Firefox(というかMozilla系かな)限定だろうけどXMLSerializerがあるのだ。 使い方は簡単。 var serializer = new XMLSerializer(); //略 var root = document.createElement('div'); var anchor = document.createElement('a'); var aText = document.createTextNode('はてな'); anchor.setAttribute('href','http://www.hatena.ne.jp/'); anchor.appendChild( aT

    DOM Elementオブジェクトをテキストダンプしてデバッグ - hogehoge @teramako
  • 1