タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとprogrammingとbrowserに関するraimon49のブックマーク (77)

  • HTMLDocument の動的な作成: Days on the Moon

    ブラウザ上で、JavaScript を使って HTML のソースから HTML 文書を生成するのに、どんな方法があるのか調べました。なお、以下のスクリプトは HTML 文書上で実行することが前提です。 表の見方 XSLT の HTML 出力 createHTMLDocument メソッド createDocument メソッド createDocument メソッドと名前空間の指定 createDocument メソッドと文書型宣言の指定 createDocument メソッドと文書型宣言及び名前空間の指定 cloneNode メソッド iframe 要素 ActiveXObject CID からの作成 まとめ 表の見方 以下の表において、各項目の意味は次の通りです。 doc HTML 文書を作成できれば○、XML 文書を作成できれば△、それ以外なら×です。HTML 文書かどうかは、cre

  • type detection - latest log

    2011-07-10追記 モダンブラウザでは、 typeof /^a/ は "function" ではなく "object" に修正されています。2009年10月(このエントリの初出)時点で /^a/("a") と記述可能な場合がありましたが、現在はエラーになります。 2010-01-21追記 http://d.hatena.ne.jp/uupaa/20100120/1263998056 2009-10-18追記 uu.type(new String('hoge'))とか渡した時4が帰ってきたりするので、プリミティブラッパー(ってJSで言うのか?)の判定を_TYPEに入れたほうがいいのかもしれませんね。 by tera コメント欄でのご指摘を受け、以下のコードを追記しています。 "[object Boolean]": 0x40, // uu.type(new Boolean(false))

    type detection - latest log
    raimon49
    raimon49 2009/10/08
    >typeof mix === "function" は function, RegExp, NodeList で true になる可能性がある
  • JavaScriptでCSSパーサーを書くための情報を収集中(1日目) - latest log

    <style type="text/css"> ... </style> CSS ファイルを一化できればステキ。ブラウザ毎に書き分けるのって来の姿じゃない。 CSS3 の機能を古いブラウザで使えればもっとステキ。 古いブラウザに時間を掛けたくない。CSS のバッドノウハウなんてノーサンキュー。やりたいことが表現できればそれでいい。 ブラウザに CSS の解釈を任せなきゃいいんじゃないか? まずは、JavaScriptCSSパーサーを書くための情報収集からです。 わかってること ロード済みのスタイルシートは、document.styleSheets に擬似配列として格納されています。長さは document.styleSheets.length から取得できます。 スタイルシートの各ルールは、cssRules (IE なら rules)に格納されています。 document.sty

    JavaScriptでCSSパーサーを書くための情報を収集中(1日目) - latest log
    raimon49
    raimon49 2009/06/16
    ブラウザ未対応のCSSをJavaScriptで補う試み。すごいアプローチ。
  • JavaScript で、画像本来のサイズ(幅, 高さ)を取得する方法 - latest log

    Opera で DOM Mutation Event を使用するコードを追記しました。 まとめを追加しました。 Opera パート2に取得できないケースが見つかったため、パート3 を追加しました。 rhino.jpg(幅:300px, 高さ:227px) を、 <img id="rhino" src="rhino.jpg" width="100" height="75" /> と、100 x 75 で表示している場合を例に、画像来のサイズを取得する方法をご紹介します。 Firefox, Safari, Google Chrome なら image.naturalWidth と image.naturalHeight を利用します。 image.naturalWidth と image.naturalHeight の初期値は 0 です。画像の読み込みが完了した時点で適切な値に更新されます。

    raimon49
    raimon49 2009/06/03
    IEにおけるnaturalWidth, naturalHeight代替手段。runtimeStyleを一時的にautoに。
  • JavaScriptでCSSとイベントを扱う from Kanasan.JS | Blog.37to.net

    最終更新日 Sun, 19 Apr 2009 20:27:25 +0900 最後のコメント Mon, 14 Jul 2014 08:14:00 +0900 ブックマーク 先日開催された、Kanasan.JS JavaScript第五版読書会#7のレポートです。 今回はCSSとイベント処理の入門的内容でした。 ご参加頂いた皆様、ありがとうございました。 JavaScriptからCSSを扱う それ程難しくはないので、簡単にまとめておきます。 はまりがちな事 Element.style.colorなど、Element.style.〜のスタイルオブジェクトで操作出来るのは、 インライン指定されたスタイルのみなので気を付ける必要があります。 僕も最初の頃は知らずによく間違えていたのですが、これを知っていると無駄に時間を使わなくて済むと思います。 <style> #foo { background-c

    raimon49
    raimon49 2009/04/20
    知りたいことが分かり易くまとまってるし、ためになる。たぶんこれから何度かお世話になる記事。
  • JavaScript変数読み書きのパフォーマンス比較、高速化テクニック | エンタープライズ | マイコミジャーナル

    NCZOnline "Professional JavaScript for Web Developers"、"Professional Ajax"などの書籍の著者でありSpeed up your JavaScriptシリーズを公開したNicholas C. Zakas氏が再び興味深い記事をブログで公開した。JavaScript variable performanceだ。WeブラウザごとにJavaScriptにおける変数へのアクセスの時間を計測してまとめている。 JavaScriptパフォーマンスの高速化手法に『外部変数を使うのではなく可能な限りローカル変数を使う』というテクニックがある。これは識別子の検索がローカル変数から実施されるためで、外部変数を使うよりもローカル変数を使う方が検索が短い時間で終わるため結果的に処理時間の短縮につながるというものだ。1度以上外部変数を使うなら、ローカ

    raimon49
    raimon49 2009/02/23
    >すでに登場している、またはこれから登場が計画されている最新のWebブラウザでは外部変数へのアクセスも高速化されることになりそうだが、最大シェアを誇るIE7やIE8でほとんど改善がみられないことから『外部変数を使
  • はてなブログ | 無料ブログを作成しよう

    景色変わる6インチヒール ― の話 春頃に買ったすごくお気に入りのがあって、今日はその話をします。 商品としてはこれで、アイボリーとブラックを持っています。 https://store.cityhill.co.jp/item/945970.html アイボリーを買った後、かわいくて歩きやすくて気に入ったのでブラックを追加購入しま…

    はてなブログ | 無料ブログを作成しよう
    raimon49
    raimon49 2009/02/06
    naturalWidthとnaturalHeightは知らなかった。Imageオブジェクトのonloadが無難。
  • JavaScriptによるブラウザ判別の実際 - os0x.blog

    1 行でブラウザ判別を行うスクリプト (IE 用の日語紹介記事、Firefox、Safari 用の日語紹介記事) を発端に、SpiderMonkey の判別とブラウザ判別: Days on the Moon や JavaScript でのブラウザ判別 - 「仕様の盲点」ではなく、「プロパティの有無」を使う方がマシ - 2009年2月 - Blog - EOFなどの記事があがっています。 ここでは少し実際的なケースごとにサンプルコードを紹介していきたいと思います。(サンプルコードは適当に書いているので、不正確な箇所があるかもしれません。ご了承ください。間違い等ご指摘いただけると助かります。) なお、これらは汎用的なJavaScriptライブラリを使っていれば意識しなくても良いケースがほとんどです。 分岐する必要がないケース 分岐する必要がないなら、ケースとしてあげる必要はないと思われるか

    JavaScriptによるブラウザ判別の実際 - os0x.blog
  • アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found

    2009年01月31日01:00 カテゴリLightweight LanguagesMath アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 これなのですが.... 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thang ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyPythonで言うところの「"..." * n」) を高速に実装しなければならない状況に遭遇したのでベンチマークをとってみたところ、その結果がとても新鮮で驚いたので、これを共有しつつもダメ出ししてもらえないかなーと思って晒してみることに。 なぜかもっとシンプルな奴がなかったので。 以下、比較。初期値はIEにあわせてあります。Firefox/Saf

    アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found
  • 2行でJavaScriptを高速化する方法 - rand&#39;s

    id:amachangさんの 一行で IE の JavaScript を高速化する方法 - IT戦記 に対して、id:uupaaさんが http://d.hatena.ne.jp/uupaa/20081230/1230604575 でIE以外でも使える色々な方法を提案なさっています。でも、 「正直documentを_docに置き換えるの面倒><」 そこで、たかがreplace(/document/g, '_doc')の手間を惜しむ皆様のために用意した、2行でJavaScriptを高速化する方法がこちら: script全体を(function(document){と})(document)で囲む これだね! ベンチマーク uupaaさんの記事にあるB系のソースを使わせていただきました。 ブラウザ B0 B1 B2 B3 B4 B5 b6 IE 6 10281 4938 10844 4672

    2行でJavaScriptを高速化する方法 - rand&#39;s
    raimon49
    raimon49 2008/12/31
    全体を無名関数のスコープに
  • amachang の 「一行で IE の JavaScript を高速化する方法」を掘り下げてみた - latest log

    2009-11-12 ナビ子記法について追記しました 文 今日は、amachangさんの記事 http://d.hatena.ne.jp/amachang/20071010/1192012056 を 1mm だけ掘り下げ、IE 以外のブラウザでも document へのアクセスを速くする方法がないか、色々試してみます。 # 記事自体はずいぶん前に書き上げてたけど、公開するの忘れてたんだな。 C系を追加しました。C系は「ネストしたスコープからグローバル変数にアクセスするとどうなるか?」がテーマです。 試したこと 以下は様々な方法で document へのアクセス速度を計測します。 A系では、非日常的な方法で測定し、B系では実際の用法に近い形で測定します。C系では何重にもネストしたスコープから、グローバル変数にアクセスするとどうなるかを測定します。 A系 A0 は、素の document に

    amachang の 「一行で IE の JavaScript を高速化する方法」を掘り下げてみた - latest log
    raimon49
    raimon49 2008/12/30
    documentへのアクセス速度
  • insertAdjacent.js - Thousand Years

    どっかで見たことあるんですが見つからない…というわけでfxでinsertAdjacent系が利用できるものをつくりました。これ使ってdocument.writeハックするとなんか面白いことできそうです。ちなみにinsertAdjacent系はIEとOperaでは利用可能です。お持ち帰りでお願いします。 ドキュメント DOMの見慣れないメソッドHTMLElement.insertAdjacent〜 - Thousand Years ソース (function() { if('HTMLElement' in this){ if('insertAdjacentHTML' in HTMLElement.prototype){return;}; }else{ return; }; function insert(w, n) { switch(w.toUpperCase()) { case 'BEFO

    insertAdjacent.js - Thousand Years
    raimon49
    raimon49 2008/11/12
    insertAdjacent系を持たないブラウザ向けに定義する。
  • DOM操作 Samples /Core

    JavaScript ガイド:高橋 登史朗 Ajaxなど、何かと最近騒がれているJavaScriptの最新情報とその活用方法を解説します。 掲示板 取材依頼 問合せ

    raimon49
    raimon49 2008/11/05
    仕様へのリンク, ブラウザ毎の動作リスト付き
  • イベントへの関数登録について - Backstage of theater.js

    HTML+JavaScriptで、要素のイベントへの関数登録の方法は、主に以下の3つです。 1. 要素タグのなかに属性(onclick="〜"等)を直接記述する。 【例】 <button onclick="alert('!');">TEST</button> 2. 要素オブジェクトのプロパティへ関数を設定する。 【例】 <button id="test">TEST</button> <script> function func(){ alert("!"); } var elem = document.getElementById("test"); elem.onclick = func; </script> 3. 要素オブジェクトのaddEventListenerメソッドまたはattachEventメソッドを使用する。 【例】 <button id="test">TEST</button>

    イベントへの関数登録について - Backstage of theater.js
    raimon49
    raimon49 2008/08/07
    イベント関連。ブラウザの違いの解説が丁寧。
  • DOMの基本。正しいHTMLとドキュメントツリーを理解しよう

    DOMを介してHTMLを操作する方法を理解しよう。そのためには、正しいHTMLの概念とドキュメントツリーを知る必要がある。 旧来のDHTMLの手法では、JavaScriptから操作できるHTML要素には限りがありましたが、DOMでは、HTML上のありとあらゆる要素を自由自在に読み取ったり、書き換えることができるようになります。連載では、おもにDOM Level 1で規定されている手法を使って、JavaScriptを使ってどのようにHTML上の要素へアクセスするのか、そして、それをどうやって書き換えるのかを詳しく解説していきます。JavaScriptからHTML要素を手に取るように操れるようになります。 ドキュメントツリーとは DOMスクリプティングでは、HTMLに関する正しい知識が求められます。まずは正しいHTMLとはなんなのかを理解していただきます。そして、DOMスクリプティングでは欠

    DOMの基本。正しいHTMLとドキュメントツリーを理解しよう
    raimon49
    raimon49 2008/03/12
    ブラウザ毎のドキュメントツリーのイラスト有り。
  • Dean Edwards: Sniff!

    My current frog exaggerator of choice: var isMSIE = /*@cc_on!@*/false; Comments (67) Leave a comment Comment: #1 It seems to be the fastest and shortest way to know that, thank You! Comment: #2 ooops, maybe this one is even more horrible var isMSIE = /*@cc_on!@*/!1; reduced by 3 chars :rotfl: Comment: #3 […] Dean Edwards nous propose la méthode la plus courte (en terme de code )que j’ai eu l’occas

    raimon49
    raimon49 2008/02/20
    IE判定を1行で。var isMSIE = /*@cc_on!@*/false; 圧縮系ツール使うと動かなくなるから/msie/.test(navigator.userAgent.toLowerCase())の方が良い。
  • Enjoy*Study

    About Me ID onozaty Location Japan Job Software developer Links Twitter @onozaty GitHub Blog (Hatena Blog) Zenn SlideShare Medium

    raimon49
    raimon49 2007/11/09
    keyイベントの確認が便利。