タグ

ブックマーク / d.hatena.ne.jp/brazil (6)

  • 実用 - ウィンドウの外で発生するmouseupイベントを取得する、Firefox

    JavaScript save the assistants 上記のスライダー、ドラッグを開始して、ウィンドウ外でボタンを離し、再度ウィンドウに戻るとずっと押しっぱなしのおかしな状態になる。これは、たぶんマウスが離されたことを検知できていないため。 WebFXのスライダーは、ちゃんと動く。実装を読んでみた。 Slidebar (WebFX) Firefoxは、文字を選択するようにドラッグを開始すれば、ウィンドウ外でマウスのボタンを外した時にもmouseupが起こせるようだ。これを利用し、見えない文字を選択し、選択状態も見えなくして、スライダーが正常に動作するようにしていた。 簡単なサンプルは以下。スライダに限らず、ドラッグ全般に使えると思う。mouseup以外に、mousemoveなども取れた。 IEの場合は、onlosecaptureイベントを使っていた。WebFX++

  • セッターの中で値を返す - FAX

    セッターの中で値を返す JavaScript Firefoxでは、ゲッター/セッターを使える。 すごく便利。 コードが短くなる。 セッターの中では、最後にその値を返すといい。 var obj = [ set value(value){ return this._value = value; }, get value(){ return this._value; } } さもないと以下のような、フィルター的なコードが動かない。 var value = obj.value = 'TEXT'; Permalink | コメント(0) | トラックバック(0) | 08:22

    f99aq
    f99aq 2007/07/16
    getter, setter
  • 脆弱性、全てのサイトでGM_xmlhttpRequestを使う、解説と回避 - FAX

    JavaScript 検討、全てのサイトでGM_xmlhttpRequestを使う 上記エントリのコードは脆弱で、GreasemonkeyのGM_xmlhttpRequestを予期しないコンテンツウィンドウから奪われる可能性があることを、Days on the Moonのnanto_viさんにメールにて教えていただきました。貴重なアドバイスを頂き、深く感謝しております。 具体的には、gmXMLHTTPRequestの__parent__プロパティから、Greasemonkeyスクリプトのコンテキストを取得され書き換え、APIキーをコンテンツウィンドウにコントロールし乗っ取ることができます。サンプルコードは以下です。 gmXMLHTTPRequest.__parent__.API_KEY = 'ABC'; GM_XHR_API_KEY = 'ABC'; gmXMLHTTPRequest({

  • GM_addStyle、E4X - FAX

    JavaScriptGreaseMonkeyのスタイル追加関数GM_addStyleは、一回の呼び出しにつき、ひとつstyle要素がheadに追加される。今まではこう書いていた。 GM_addStyle([ "body{margin: 3em 5em;}", "h2 {background: gray; color: white; cursor: pointer; padding: 0.2em;}" ].join('')); こうも書けるなぁ。 GM_addStyle(<>); 長いスタイルの場合、こっちが見通しがよいかも。

  • Collection & Copy - Greasmonkey、はてなブックマーク追加時にコメントを表示する、E4X

    JavaScript スクリプトの内容更新されています。ファイルの配布先は変わっていないため、そのままここからインストールできます。 はてなブックマーク追加時にコメントを表示するGreasemonkeyスクリプト、更新 hb_display_comment.user.js はてなブックマークの追加画面の下部にコメントの一覧を表示するGreasmonkeyスクリプト。基デザインの要素を非表示にするので、いる場合はGM_addStyleの部分から削ってください。 JSONを取得しテーブルを表示している部分は以下。 GM_xmlhttpRequest({ method : "GET", url : "http://b.hatena.ne.jp/entry/json/" + decodeURIComponent(location.href.match(/url=(.*)/)[1]), onl

  • Collection & Copy - ドキュメントのロード完了に合わせて関数を実行する

    JavaScriptページロード時にプログラムを実行するためにwindow.onloadやbody.onloadがしばしば使われる。しかし、ページ内に大きな画像が存在する場合などは、画像のロードを待つため、実行が遅れてしまう。「ドキュメントのロードが終わっていて、かつ、イメージのロードが完了する前」に関数を実行する方法のリンク2つの要点をコピー。 script要素defer、DOMContentLoadedイベントを利用する方法The window.onload Problem - Solved! Firefoxの場合非公式のイベントハンドラ、DOMContentLoadedを利用する。 // for Mozilla browsersif (document.addEventListener) { document.addEventListener("DOMContentLoaded",

  • 1