タグ

ブックマーク / monjudoh.hatenablog.com (7)

  • JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary

    @rosylillyが気にしていた のでまとめた。 built-in/DOM objectのprototype拡張による弊害 追加したプロパティ/メソッドがfor inで列挙される var obj = {a:1}; for (var i in obj) { console.log(i); } こうするとaだけ出るはずが、 Object.prototype.b=function(){}; こうした後だとa,bが出てしまうって奴ですね。 そのまま代入しないでObject.defineProperty/definePropertiesでenumerable:falseのプロパティとして定義すれば列挙されなくなるので特に問題ありません。 今回挙げるprototype拡張の弊害の内唯一これだけはECMAScript5時代になって解消されました。唯一これだけは。 built-in/DOM object

    JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary
  • Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary

    Firebugでは条件付きブレークポイントが使えるので、 scriptタブにて該当行にブレークポイントを貼り、 条件としてconsoleへの出力を||区切りで、最後に&& falseを入れる。 console.debug('this.lastPosition') || console.dir(this.lastPosition) && false こうするとブレークポイントを通る度にconsoleへの出力は評価され、 consoleに出力され、最後の&& falseのため式全体は必ずfalseとして評価されるため ブレークすることはない。 追記 console出力系関数の戻り値はundefinedなんだから&& falseは不要か 追記 nanto_vi @monjudoh JSでは||より&&の方が優先順位が高いので、a || b && c はaが真ならbもcも評価されずに全体が真として

    Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary
  • Mercurialを使った俺々バージョン管理ノウハウまとめ(2009年夏編) - monjudoh’s diary

    職場でMercurialを使っていい感じに俺々バージョン管理を やれるようになってきた感があるので、 ノウハウをまとめる。 概略 中央リポジトリと同期をとるbranchを用意する 同期branchはsync_cvsとかそんな名前 defaultをそのまま使っても良い このbranchで開発作業は絶対にしない 全ソースをhgで管理しない 中央リポジトリで管理しているソースの数が多い場合の話 hgで管理するファイル数が多いとhg update等が遅くなり、開発のスピード感が落ちる ticket毎に開発作業用branchを作成する 同期branchから作成する 同期branchから随時rebaseする 必ず、同期branchの最新版からrebaseした状態でテストを行う。 テストが通ったらticket別branchから同期branchにmergeする。その後、同期branchの内容で中央リポジト

    Mercurialを使った俺々バージョン管理ノウハウまとめ(2009年夏編) - monjudoh’s diary
  • キャプチャリングとバブリング Firefox編 - monjudoh’s diary

    サイの17.2に詳しく書いてありますが、JavaScriptのDOM レベル2イベントでは、 イベント伝播は3つの段階で構成されます。 キャプチャリングフェーズ ターゲットノード自身でのイベントハンドラの実行 バブリングフェーズ 上図のように3つ入れ子になった要素の、 外側から2つ目の要素をクリックした場合を例にとると、 キャプチャリングフェーズでdocument→外側の要素→と伝播していき、 ターゲットノードでのイベントハンドラ(あれば)が実行され、 バブリングフェーズで→外側の要素→documentと伝播していきます。 DOMレベル0のイベントではターゲットノードでしか イベントハンドラの実行は出来ませんが、 DOMレベル2イベントではキャプチャリングフェーズ・バブリングフェーズでも イベントハンドラの実行が出来ます。 検証用HTML 確認のためにdivの親子をそれぞれクリックして、

    キャプチャリングとバブリング Firefox編 - monjudoh’s diary
  • FirefinderはJavaScriptプログラマ以外も使うべき - monjudoh’s diary

    Firefinderとは何か? https://addons.mozilla.org/en-US/firefox/addon/11905/ CSSセレクタやXPathで要素を検索出来るFirebugの拡張です。 どんな人にお勧めか? hiddenフィールドの値を閲覧したり、 formのどの要素のnameが何かとかさくっと見たくなることないですか? あるならお勧めです。 Firebugには既に$$というCSSセレクタで要素を検索出来る関数があるんだが? CSSセレクタのサポートの度合いが違います。 $$関数では基的なCSSセレクタしかサポートされていないので、 例えば、ここなら、http://images.google.co.jp/advanced_image_search?hl=ja $$('input'); // [input, input ja, input Google 検索, i

    FirefinderはJavaScriptプログラマ以外も使うべき - monjudoh’s diary
    sotarok
    sotarok 2009/06/04
    ほおほお
  • iframeを使用したクロスドメインPOST - monjudoh’s diary

    指定したidのiframeのdocumentを取得する関数 function getIframeDoc(iframeId){ var iframe = document.getElementById(iframeId); if (document.all) { return iframe.contentWindow.document; } else { return iframe.contentDocument; } } こんな感じで適当なdivを作って適当なiframeを放り込んで、body作ってDOM操作できるようにしてやる。 var div = document.createElement('div'); div.id = 'iframeContainer'; document.body.appendChild(div); var iframe = document.createEl

    iframeを使用したクロスドメインPOST - monjudoh’s diary
    sotarok
    sotarok 2008/02/04
    iframeでクロスドメインPOST
  • またニコニコ動画見てるグリモンをSeaHorseに移植したい - monjudoh’s diary

    とりあえずイベント処理やflvplayerの取得などをIEコンポーネント対応するのは出来て、 GM_xmlhttpRequestのダミーで来POSTすべき内容をalertで表示するところまでは出来た。 // ==UserScript== // @name mata nicovideo // @namespace http://d.hatena.ne.jp/monjudoh/ // @include http://www.nicovideo.jp/watch/* // @author monjudoh // @description Original Greasemonkey script : http://muumoo.jp/news/2008/01/28/0matanicovideo.html // @version 0.2 // ==/UserScript== (function()

    またニコニコ動画見てるグリモンをSeaHorseに移植したい - monjudoh’s diary
    sotarok
    sotarok 2008/02/02
    またニコニコ動画見てるスクリプト
  • 1