タグ

JavaScriptとtipsに関するsawatのブックマーク (24)

  • Admiral

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 最速インターフェース研究会 :: JavaScriptにおけるdeep clone

    http://blog.livedoor.jp/dankogai/archives/50957890.html まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。影響が大きすぎるので、よっぽど変態的なライブラリじゃないと使わない。他のライブラリと組み合わせるとほぼ確実に問題が起きる。それから、deep_cloneが欲しい場合はJSONを作ってevalすればよい。パフォーマンスを気にする場合とか、浅いコピーが必要な場合はそれなりに工夫する必要があるけど。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 http://subtech.g.hatena.ne.jp/cho45/

  • プリミティブ値でもプロトタイプ的継承: Days on the Moon

    書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 404 Blog Not Found:javascript - プロトタイプ的継承 (元記事: Prototypal Inheritance) より。継承という言葉は意味が広いので、この操作に対してはチャイルドの作成といったほうが個人的にはわかりやすい。 さて、元記事で紹介されているコードではプリミティブ値からのチャイルドの作成 (継承) ができなかった。これはなぜかといえば、オブジェクト作成の際、プリミティブ値をプロトタイプ ([[Prototype]] 内部プロパティ、__proto__ プロパティ) に設定することはできないからである。 そこで、プリミティブ値が渡された場合は、それをラッパオブジェクトに変換することにする。といっても場合分けの必要はない。Object 関数を使えば、プリミティブ値

  • JavaScript大域変数の存在確認 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    [追記]id:zorioさんのブックマークコメントの指摘により、抜けていた「.apply」を挿入しました。[/追記] JavaScriptで、大域変数(大域オブジェクトのプロパティ)fooが存在しないときに何かをしたいとしましょう。例えば、こんな書き方をしますよね。 if (!foo) { // 何か } でも、式 !foo は、fooがnullでもfalseでも0でもtrueに評価されます。 if (foo == undefined) { // 何か }としたほうがよさそうです。が、null == undefined もtrueとなるのであまり改善されてません。 if (foo === undefined) { // 何か }イコールが3つなら、厳密に「fooが未定義値であるとき」を表現します。ここで、undefinedはリテラルではなくて、仕様として事前に定義されている大域変数です。u

    JavaScript大域変数の存在確認 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • handleEvent - ロックスターになりたい

    addEventListenerの第二引数には関数以外にオブジェクトを渡せるのを今知った。 オブジェクトを渡した場合、イベントが起きたときにオブジェクトのhandleEventメソッドが呼び出される。 知らぬは己ばかりなり。

    handleEvent - ロックスターになりたい
    sawat
    sawat 2007/10/31
    知らなかった!
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
    sawat
    sawat 2007/10/11
    100000回のdocument参照がおよそ0.5秒短縮される。これに気付くのがすごい。恩恵にあずかれるケースはほとんどないだろうけど。 ループ無しだと20倍ぐらいだった。逆に他の処理に埋もれて差がなくなりやすいとも言える。
  • 実用 - ウィンドウの外で発生するmouseupイベントを取得する、Firefox

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

  • onerrorでエラーを検出 - VTuberになったプログラマーの魂の残滓

    @nitoyon IE 6 エラーになる?やべー、手元に Windows がないー。ちょっと別のマシン起動してきます。 http://twitter.com/amachang/statuses/191685642 ってのがあったのでonerrorを使ったエラーの検出方法について書いてみたいと思います。 いきなりソースコード var err = function(a,b,c){ var img = new Image(); img.src = 'http://example.com/error.gif?a=' + escape(a) + '&b=' + escape(b) + '&c=' + escape(c); return true; } window.onerror = err; 用意するもの 上のスクリプトをできるだけページの上部に設置 アクセスログを閲覧できる場所に1x1のerro

    onerrorでエラーを検出 - VTuberになったプログラマーの魂の残滓
    sawat
    sawat 2007/08/08
    クライアントサイドのエラーをサーバー側検知できるわけか。
  • [webkit-help] Cross-compiling webkit for ARM platform on Linux-x86 machine

    Welcome!Below is a listing of all the public mailing lists on lists.macosforge.org. Click on a list name to get more information about the list, or to subscribe, unsubscribe, and change the preferences on your subscription. To visit the general information page for an unadvertised list, open a URL similar to this one, but with a '/' and the list name appended. List administrators, you can visit th

    sawat
    sawat 2007/08/08
    window.getSelection().focusNodeはsafariでも使える?
  • style.cssText の使い処に関する考察 - IT戦記

    cssText って知ってますか? cssText っていいうのは CSSRule オブジェクトとか CSSStyleDeclaration が持っている情報を css ファイルに書く形式の文字列にしてくれる機能です。 乱暴に言ってしまえば、 css 系のオブジェクトが持っている innerHTML みたいなものです。 具体例を見てみましょう。 こんな感じの body があるときに <body style="margin: 1em; padding: 1em; border: 1em">....</body> こんな感じで使えます。 alert(document.body.style.cssText); // 'margin: 1em; padding: 1em; border: 1em' 簡単でしょう?(ボブ略 設定も出来ますよ こんな感じ // さっきの続き document.body

    style.cssText の使い処に関する考察 - IT戦記
  • IE 以外の JavaScript で getter setter が使えるようになる! - IT戦記

    Opera 9.5 では getter setter が使えるようになります。 http://my.opera.com/desktopteam/blog/kestrel-is-coming で Safari 3 でも使えるか試してみたら・・・ alert({ get x() { return 'ok' } }.x); // ok つ、使えた! Firefox でも かなり前から getter setter が使える という事は・・・ IE 以外で getter setter が使えるのはもうすぐだ!!! IE にしかないプロパティを他のブラウザで実装することができるようになる!! たとえば、こんな感じ? // ↓条件付きコンパイル /*@cc_on @if (@_jscript) @else @*/ if (!('returnValue' in Event.prototype)) { Ev

    IE 以外の JavaScript で getter setter が使えるようになる! - IT戦記
    sawat
    sawat 2007/06/27
    おおっ!
  • JavaScript で幅に合わせて文字列を切りつめる - Psychs's blog

    デスクトップアプリを開発してると、ListView のカラム幅が足りなくなったときに「My Docume...」のように自動的に末尾を「...」で埋めて切りつめてくれる機能がある。ウェブでも同じことをやりたかったので、作ってみた。 まず、文字列の幅を測定するには、 <span id="ruler" style="visibility:hidden;position:absolute;"> </span> みたいな隠しエレメントを用意しておいて、 String.prototype.getExtent = function(ruler) { var e = $(ruler); var c; while (c = e.lastChild) e.removeChild(c); var text = e.appendChild(document.createTextNode(this)); var

    JavaScript で幅に合わせて文字列を切りつめる - Psychs's blog
    sawat
    sawat 2007/05/25
    text-overflow:ellipsisはIE専用なので、overflow:hiddenを使って実現することはできないかな?「…」をつけるつけないが無理か。
  • Web標準化時代のJavaScript

    ページ内に文字(テキスト)だけを出力する場合 ページ内に文字だけを出力する場合もあります。まず、従来の方法で文字を表示させるスクリプトを見てみましょう。document.write()を使ってページの構築時に文字を書き出します。【サンプル1を実行】 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Sample</title> </head> <body> <p>ページが読み込まれると文字を表示します</p> <script type="text/javascript"><!-- document.write("今晩は。明日も頑張りましょう

    sawat
    sawat 2007/05/25
    FirefoxはinnerTextの代わりにtextContent 。 textContent 知らなかった!
  • http://usagi-js.com/bbs/jsforum.cgi?no=8617

    sawat
    sawat 2007/05/16
    IEでimportNode(もどき)
  • 画面上の座標を指定してその位置の要素を取得する、という処理 - outsider reflex

    Latest topics > 画面上の座標を指定してその位置の要素を取得する、という処理 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « 動画でタブカタログの挙動を示してみるテスト Main 選択範囲のリンクをタブで開く拡張機能 » 画面上の座標を指定してその位置の要素を取得する、という処理 - May 09, 2007 タブカタログのサムネイル上でリンクをクリックしたらリンク先に飛べるようにしたついでに、リンク上の中クリックでタブも開けるようにしてみたんだけど、これ、ちょっとでもクリック位置がずれたらタブを閉じてしまいかねないなあ。いまリンクの上にポインタがあるのかどうか一目で分かるようにしたいけど、CSSのcursorみたいなことはJava

    sawat
    sawat 2007/05/10
    へぇ。めもめも。
  • JavascriptTips - jslibs - JavaScript language advanced tips and tricks - Project Hosting on Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • 濃い JavaScript のテクニック集見つけた - IT戦記

    jslibs の wiki を眺めてたら、 JavaScript のテクニック集を見つけてしまった http://code.google.com/p/jslibs/wiki/JavascriptTips 内容 Firefox 限定のテクニックも含まれてますが、 JavaScript のテッキーな書き方満載です。 例えば カンマ演算子 var a = (1, 2, 3, 4); alert(a); // 4 var b = ( a += 3, a *= 6, a ); とか、普通やらないようなこともいろいろあって楽しかったです。

    濃い JavaScript のテクニック集見つけた - IT戦記
    sawat
    sawat 2007/04/23
    カンマ演算子は、for文と、bookmarkletなどで文字数をぎりぎりまで切り詰めなきゃいけないときに使う。with(a){b=3;c=4;} => with(a)b=3,c=4; って具合に。
  • [暴満館] JavaScriptによるCSSの操作

    またFirefoxは短縮形で取得しようとすると、設定していないプロパティにデフォルト値が入った状態で返ってくるので注意する。 getStyleValue( "div.hoge", "background" ) //Mozilla : rgb(17, 34, 51) none repeat scroll 0% 0% ルールを削除する function deleteRule( index, sheetindex ) { if( sheetindex == undefined ) sheetindex = 0; document.styleSheets[ sheetindex ].deleteRule( index ); } 全てのルールにはインデックスが振られており、それを指定することでルールから消すことができる。 ただ、同じセレクタで上書きするのとほとんど変わらないので、あまり必要にならない

    sawat
    sawat 2007/04/17
    まとまっていて助かる。getComutedStyleの使い方とかすぐ忘れてしまうので。
  • miya2000の日記 - これからドラッグ&ドロップを書く人のために

    2012/07/22 追記 久しぶりに確認したところ、IE9 では以下で指摘している IE (このときは IE6 でした) の問題(3, 4, 6)がすべて解消されていました。 また、Firefox での問題(5)も Firefox14 で試したらは解消されていました(ただ、All-in-One Sidebar のパネルの上では mousemove イベントが発生しないようでした)。 Chrome20 や Safari5 でも問題無く動作していますから、現在においてドラッグ&ドロップを実装するには mousedown 時の preventDefault() だけでOKと言えそうです。すばらしいですね! safari で動かないらしいのでどなたか情報ください!(くやしい!) というかこういうのに勝ち負けはないので実装できてる方は是非トラックバックお願いします。当方既に ipod 中毒ですし

    miya2000の日記 - これからドラッグ&ドロップを書く人のために