タグ

JavaScriptとtipsに関するono_matopeのブックマーク (11)

  • 最速インターフェース研究会 :: 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/

    ono_matope
    ono_matope 2007/11/27
    『deep_cloneが欲しい場合はJSONを作ってevalすればよい』なるほど!
  • 画像の元サイズとJavaScript: marmooのてくめも.

    ブラウザで画像を読み込むとき,画像のサイズを設定しないとサイズが勝手に設定されてしまう問題が起きる.これはJavaScriptで画像の元サイズを取得してみるとわかる. document.images[<name>].width; document.images[<name>].height;来なら画像の元サイズを取得できるはずなのだが,画像を読み込み中,Operaは1x1, Firefoxは24x24に設定されてしまう(IEは元画像のサイズを直接読み込んでくれる). そして画像の読み込みが終了したときに,元サイズの画像サイズに再設定される. この仕様は,CGIを利用する場合に問題となる.サーバで画像サイズを設定する必要があるからだ.クライアントで画像サイズを取得しようとしたとき,予期しない画像サイズになってしまう. クライアントで解決するには,JavaScriptで画像の読み込みが完了す

  • 最速インターフェース研究会 :: history.backが成功したかどうかを判別する

    今も昔も大変よく使われている古典的JavaScriptの一つjavascript:history.back()なんですが、実際に戻る操作が成功したのかどうかを判別することができません。タブブラウザなんかを使っててミドルクリックで新規タブで開いてたりすると、history.backをクリックしても無反応で何も起こらない、なんてことよくありませんか? そんなわけなのでhistory.backを実行後にページ移動が発生しているかどうかを監視して、戻るに失敗したときに特定の処理を発生させることができるような関数を作ってみました。 function try_back(errback){ var bs = false; Event.observe(window,"unload",function(){bs=true}); Event.observe(window,"beforeunload",func

    ono_matope
    ono_matope 2007/07/23
    "window.onbeforeunloadはページから立ち去ってよろしいですか?とメッセージを出すのに使ったりするイベントハンドラ。"
  • 2006-12-29

    画像拡大後も処理を繰り返してしまう問題があったので修正しました。 http://yagi.xrea.jp/2006/12/miximix.user.js Greasemonkeyスクリプトなどを書いてると、対象HTML中にJavaScriptを埋め込みたくなることがあります。 ベタに書くと大変うざいことにりますが、 script.innerHTML = "add = function(a, b){" + " var ans = a + b;" + " return ans;" + "}"; こう書くとすっきり。 script.innerHTML = "add = " + (function(a, b){ var ans = a + b; return ans; }); 関数を普通に記述した上で、それを文字列に変換。

    2006-12-29
    ono_matope
    ono_matope 2006/12/30
    便利そう
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    ono_matope
    ono_matope 2006/11/28
    Greasemonkeyでハッシュを保存するTips。あー、これはいい。
  • JavaScript で外部ライブラリの load

    分かっている人には今さらなネタです。自分用に整理してみました。 Ecmascript そのものには外部ファイルを読み込む機能はない。ホスト環境の機能に依存する。ブラウザで動く JavaScriptHTML を解釈するブラウザの機能を利用し、 <script> 要素を書き出すXMLHttpRequestのどちらかの方法で外部ファイルを load する。(HTML の中に script 要素を予め書いておく方法は何も難しいことはないのですっぱり割愛 。) ※ ここに書いたものよりもう少し詳しい内容を「JavaScript の動的ロードで(結果的に)Classic Mac を除外する」、「XMLHttpRequest を使ったスクリプトのロードは意外と面倒」に書きました。よければそちらも読んでいただければと思います。 1. の方法の場合、どのドメインにある JavaScript でも lo

  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

    ono_matope
    ono_matope 2006/05/17
    クラス定義方法一覧。手段が沢山あるので最初は戸惑います。
  • IT戦記 - Shibuya.js Technical Talk #1 を終えて。

    皆様のお話し、とても勉強になりました。そして、楽しかったです。 自分自身にこのような機会を与えてくれた、id:secondlife さん及び Shibuya.js の皆様に感謝します。 また、別のテーマでも話せる機会があれば、ぜひ、挑戦してみたいと思います。 これからも、amachang をよろしくお願いします。 資料をアップしました。 http://sample.ecmascript.jp/20060414.ppt

    IT戦記 - Shibuya.js Technical Talk #1 を終えて。
  • JavaScript 重箱の隅

    ここでは、主に Undocumented(?) な JavaScript の機能やテクニックを紹介します。 最近リファレンス的なことばかり書いていてちょっと嫌になったので(爆)、 多少は遊んでみたいなあ。

  • JavaScriptで製作したWindows用タスクバー時計

    2002/8/14 (有)アポロスター 石井 これは何か Windowsではタスクバーの通知領域(タスクトレイ)に時計を表示できますが、そこに日付と曜日も表示させたい場合、機能を拡張するためのフリーソフトウエアなどをインストールする必要がありました。 そこでJavaScriptを用いて時刻や日時・曜日を表示するページを製作しました。タスクバーには任意のWebページを表示する機能があり、それを利用してタスクバーにはめこんでいます。 以下のような表示が可能です。 さらに表示する日付の書式を、以下のような設定画面を使って自由に設定することができます。 利用条件 このタスクバー時計は無料で自由にお使いいただけます。ただし、事前にお知らせすることなくサービスを停止する場合があります。 インストール方法 この時計はアプリケーションソフトウエアではなく単なるWebページですから、ソフトウエアのインストー

  • JavaScript で日本語の変換途中の文字列を取得する

    JavaScript で日語の変換途中の文字列を取得する input form に onKeyDown とか指定してイベントを受け取るようにすると、現在入力している文字列が取得出来るわけですが、残念ながら日語の変換確定前の文字列は IE でしか取得出来ません。 しかし setTimeout の処理とかを使えば IE 以外のブラウザでも取得出来るのですが、このやり方について解説している人を見掛けた事が無いので紹介しておきます。ええ、まぁ、実際にそんな事がしたい状況ってのはあんまり無いんですけどね。JavaScript で自動フリガナ入力 ってのを見たら、やっぱり onKeyDown のせいで IE 以外のブラウザには非対応っぽいので Firefox 対応版になったら嬉しいなと思ったもので。 それで肝心のやり方ですが、実際にサンプルを見た方が早いと思うので、以下に用意しました。何も難し

  • 1