タグ

javascriptとdomに関するtarchanのブックマーク (21)

  • DOMに要素が挿入される度にイベントを起こすDOMNodeInsertedの扱い方 - 三等兵

    DOMに要素が挿入されたときを検出できるのがDOMNodeInsertedイベント。 たとえばajaxで特定の場所が表示されたらDOMに要素が挿入されたときや、ページング系のアドオンやユーザースクリプトでスクロールバーが下にきたら要素が挿入されたときなど、そういったときにイベントを発生させることができます。 要素が挿入されたかどうか検出するには自前でDOMを監視するコードを書く必要がありますが、このイベントを使えば簡単ですね。IE以外の主要なブラウザには実装されています。 しかしこれどうも確認してみたら非推奨になってるらしいんだけど。 http://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMNodeInserted あれか。同期的だからかな。何もしらずに使うと面倒なことなりますからね。というかなりました。とはいえ、これに変わるものはない

    DOMに要素が挿入される度にイベントを起こすDOMNodeInsertedの扱い方 - 三等兵
  • HTML/CSS/JavaScriptを改善してWebサイトのパフォーマンスを向上しよう·DOM Monster MOONGIFT

    DOM MonsterはDOMやテキストノードをチェックし、Webサイトのパフォーマンス改善を提示するブックマークレット。 [/s2If] DOM MonsterはJavaScript製のオープンソース・ソフトウェア。JavaScriptを活用したWebサイトが増えている。インタラクティブなWebサイト構築にあたって、JavaScriptを使っていくのは良いが、やたらと使うと重たくなってしまう。 実行した所 さらにdivやspanタグを使って細かなCSS設定を行っていると、多数のタグが使われることでレンダリングに影響を及ぼすようになる。そうしたWebサイトの問題点をJavaScriptを使って指摘してくれるのがDOM Monsterだ。 DOM Monsterはブックマークレット型のソフトウェアだ。公式サイトにあるブックマークレットをWebブラウザに登録するだけで利用できる。任意のWebサ

  • history.pushState、history.replaceState - 素人がプログラミングを勉強していたブログ

    HTML5のhistory.pushState、history.replaceStateを試した。 HTML5 pushState/replaceState demoで動かせる。 Minefieldだと完全に意図した通りに動くがWebKitだとURLまわりがうまくいかない。 メインのソースコードは下記の通り。 canvasで適当に壁紙用画像を作るデモで、画像自体をクリックして何度も作り直せるようにした。 こういう物を作るときは、前の画像に戻れるよう履歴管理をすべきだが、今まではlocation.hashを使ったり(hashchangeイベントが入るまではタイマーが必要だった)iframeを使ったハックだったり(ブラウザ間の互換性やhistory.go(-2)をきちんと動かすのが難しい)、あるいはページを遷移する(必要ない部分まで毎回読み込まれる)必要があった。 pushState/repl

    history.pushState、history.replaceState - 素人がプログラミングを勉強していたブログ
  • 第6回 JavaScriptとHTMLとDOMの基本#1 | gihyo.jp

    こんにちは、太田です。前々回、前回とJavaScriptの基礎的な部分を解説しました。今回はJavaScriptからみたHTMLを中心に、DOMについても少しずつ解説しています。 JavaScriptHTML FirefoxのアドオンやサーバーサイドJavaScriptなどの例外をのぞいて、多くのJavaScriptHTML上で実行されるので、HTMLは土台となる重要な要素です。そこでHTMLの基礎的な部分からHTMLJavaScriptの関係を解説します。 DOCTYPEとレンダリングモード HTMLといえば最初に書くのはDOCTYPEです。現在使われているDOCTYPEはHTML4.01、XHTML1.0、XHTML1.1といくつかの種類があり、さらにその中でTransitionalやStrictなどの違いや、XHTMLではXML宣言の有無(来は必須ですが)などバリエーションが

    第6回 JavaScriptとHTMLとDOMの基本#1 | gihyo.jp
    tarchan
    tarchan 2010/05/25
    IE対応を考えなければどれだけ楽なことか!
  • Web ブラウザに表示されている画面を直接編集する方法

    これはすごい。Web ブラウザのアドレスバーに以下を入力し Enter すると、 今表示されている内容を直接編集できる。Firefox 3.0.14 と IE8 で出来 ることを確認した。 javascript:document.body.contentEditable='true'; document.designMode='on'; void 0 WEBブラウザーに表示されている画面を直接編集する方法 - sanonosa システム管理コラム集 追記(2009-10-04): 戻す方法はないものかなあ。‘false’ と ‘off’ では出来なかった。 追記(2009-10-17): 「戻す方法」というのは、「編集モードから閲覧モードに戻す方法」のこ とです。端折った書き方ですみませんでした。もう少し楽な方法が見つかっ たので、以下に追記します。 IE では、以下を入力し Enter

  • JavaScript addEventListener() - とみぞーノート

    仕様書を読んでもわかりにくい、addEventListener()の第3引数useCaptureの意味についてのメモ。 addEventListener()はIEでは未実装なので関係なし。 以下はFireFoxで確認。 useCaptureの意味 通常登録したイベントハンドラ(*1)はイベント伝搬のバブリングフェーズで呼ばれる。このため、DOM Treeの下の方のエレメントからイベントハンドラが順番に呼ばれる。 useCaptureをtrueにしてイベントハンドラを登録すると、キャプチャフェーズでイベントハンドラが呼ばれるようになる。このため、その他のイベントハンドラに先だって呼び出されるようになる。 (*1) 以下のものが含まれる。 DOMエレメントのプロパティに設定したイベントハンドラ(element.onmousedown = handler) HTMLタグに埋め込んだイベントハンド

    tarchan
    tarchan 2009/10/05
  • 【ハウツー】Webデバッガに新星登場!? 操作を記録し、イベント/DOMを一発解析 - FireCrystal (1) FireCrystalとは | エンタープライズ | マイコミジャーナル

    複雑な機能をいくつも実装したWebアプリケーションのデバッグはツールなしでは一苦労だ。Ajax処理やこまかいイベント制御・DOM操作をおこなっている箇所でバグを出してしまった日には、解析だけで大変な時間を割かなければならない。 そんなときは、FireCrystalを使えば解決するかもしれない。ユーザの操作を記録し「どのタイミングで」「なにがおこなわれているか」を一発で表示してくれる便利なアドオンだ。 稿では、そのFireCrystalについて紹介しよう。 FireCrystalとは Stephen Oney氏は8月21日(米国時間)、Firefox上で動作するアドオン「FireCrystal」をリリースした。FireCrystalはThe MIT Licenseのもとで公開されている、Webデザイナ・デベロッパ向けのデバッガ。Webページ上でユーザの操作を記録し、内部でどのようなイベント

  • XUL Apps > Documentations > ラインマーカーの実装の解説 - outsider reflex

    Text Link ラインマーカーの実装の解説 2006/7/22 ラインマーカーの実装について受けた質問に対する回答を元にして作成した解説文です。 概要 文字列的処理の限界 実装の解説 選択範囲の取得 単一の要素ノード内で完結した選択範囲の場合 複数の要素ノードに跨る選択範囲の場合 参考文献 Home Back to List 概要 ラインマーカーは、選択範囲の文字列をマーカーで強調したようにする拡張機能です。この機能を実装するためには、DOM2 Rangeを使用する必要があります。 文字列的処理の限界 GeckoやIEでは、window.getSelection()によって選択範囲を取得することができます。しかしながら、これと既存のテクニック(document.write()やHTMLElement.innerHTMLなどを使った文字列的な処理)の組み合わせでラインマーカーと同様の処理

  • Safari: window.getSelection() が返すオブジェクト (groundwalker.com)

    Safari で選択した文字列を取得するには window.getSelection() を使うが、これの返す値がよくわからない。オブジェクトであることはわかるし、 var s=window.getSelection(); var props=''; for (var i in s){ props+=i+':'+s[i]+'\n'; } alert(props); みたいなコードで プロパティを調べると、toString:[function] が定義されていることもわかる(toStringしか定義されていないこともわかる)。しかし、s.toString()=undefined なのだ。alert(s) とすれば、選択された文字列が表示されるので、toString()は実装されているように思うのだが。。。 しょうがないので、このなんだかわからないオブジェクトから文字列を取得するために、str

    tarchan
    tarchan 2009/07/29
  • window.getSelection と document.getSelection - hogehoge @teramako

    window.getSelection()とdocument.getSelection()で返ってくる値が違うって事で調べてみた。 <html> <head> <title>getSelection Test</title> <script type="text/javascript"> function reportSelection(){ var sels = { normal: getSelection(), win: window.getSelection(), doc: document.getSelection() }; var div = document.getElementById('div'); div.innerHTML = ''; for (var label in sels){ div.innerHTML += label + ': ' + (typeof sel

    window.getSelection と document.getSelection - hogehoge @teramako
    tarchan
    tarchan 2009/07/29
    window.getSelection()?がfalseにならなくておかしいなーと思ってました
  • Event Driven JavaScript - os0x.blog

    document.createEventとdispatchEvent、addEventListenerを使ってイベントドリブンに書いたJavaScriptがオレブーム(ただし、IE非対応*1 )なので、軽く紹介してみたいと思います。 具体的には、AutoPatchWork (Google Chrome Dev用のextension)をイベントドリブンで実装しています。 AutoPatchWork.jsが2009/06/11 21:00時点のソース(id:nanto_viのコメントをうけて#を.に変更済み)。シンプルさを重視しているので、324行と短めです(CSSは別ファイルですが)。 window.addEventListener('scroll', check_scroll, false); window.addEventListener('AutoPatchWork.request',

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

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 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 です。画像の読み込みが完了した時点で適切な値に更新されます。

    tarchan
    tarchan 2009/06/03
  • Javascript 動的なCSSの適用 - とみぞーノート

    function applyCSS(doc, cssfile, overwrite) { if (typeof overwrite == "undefined") overwrite = 0; // デフォルト:CSSの追加 // 既存のCSSを削除 if (overwrite && doc.styleSheets.length >= 1) { var links = doc.getElementsByTagName("link"); for (var i = 0 ; i < links.length ; i++) { if (links[i].rel == "stylesheet") links[i].parentNode.removeChild(links[i]); } } // CSS追加 if (document.all) { doc.createStyleSheet(cssfil

    tarchan
    tarchan 2009/04/06
  • Latest topics > 本気でやるならprototype.jsやjQueryやYUIは避けてonclickを使うべき - outsider reflex

    Latest topics > 気でやるならprototype.jsやjQueryやYUIは避けてonclickを使うべき 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « SAIでコラム書きました Main 自分で自分を危険に晒す行為 » 気でやるならprototype.jsやjQueryやYUIは避けてonclickを使うべき - May 18, 2008 タイトルは釣り。 気でやるならonclick属性は避けてライブラリを活用すべき - id:HolyGrailとid:HoryGrailの区別がつかない日記 気でやるならクロスプラットフォームは避けてMozillaアプリを作るべき - hogehoge onclick 属性問題につ

  • IE8 の DOM のプロトタイプと Getter/Setter API はどうなるか - IT戦記

    ちょっと前に Microsoft 公式に以下のような発表がありました。 Responding to Change: Updated Getter/Setter Syntax in IE8 RC 1 – IEBlog また、以下のようなドキュメントも公開されています。 Internet Explorer for Developers | Microsoft Docs Internet Explorer for Developers | Microsoft Docs これらの内容での概要を自分なりにまとめてみます。 概略 要点は DOM オブジェクトのプロトタイプが使えるようになる DOM オブジェクトに既存の Getter/Setter API が使えるようになる DOM オブジェクトに ECMAScript 3.1 の Getter/Setter API(PropertyDescripto

    IE8 の DOM のプロトタイプと Getter/Setter API はどうなるか - IT戦記
  • Surfin’ Safari - Blog Archive » Full Pass of Acid3

    Today we would like to announce that WebKit is the first browser engine to fully pass Acid3. A while back, we posted that we scored 100/100 and matched the reference rendering. Now, thanks to recent speedups in JavaScript, DOM and rendering, we have passed the third condition, smooth animation on reference hardware. Here is a screenshot of a successful run: Here is the timing reference dialog you

    Surfin’ Safari - Blog Archive » Full Pass of Acid3
  • ウェブストレージ API - Web API | MDN

    ウェブストレージ API (Web Storage API) は、Cookie を使用するよりも直観的な方法で、ブラウザーがキーと値のペアを保存できる仕組みを提供します。 ウェブストレージには、以下の 2 種類の仕組みがあります。 sessionStorage は、ページのセッション中(ページの再読み込みや復元を含む、ブラウザーを開いている間)に使用可能な、オリジンごとに区切られた保存領域を管理します。 1 セッションのデータのみを保存します。つまり、データはブラウザー(またはタブ)が閉じられるまで保存されます。 データがサーバーに転送されることはありません。 ストレージの上限が Cookie よりも大きいです(最大 5MB)。 localStorage も同様ですが、こちらはブラウザーを閉じたり再び開いたりしても持続します。 有効期限なしでデータを保存し、JavaScript によるクリ

    ウェブストレージ API - Web API | MDN
  • Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記

    はじめに 皆様 JavaScript のスピード競争が激化し、 ECMAScript 3.1 の仕様の策定が進むなど、激動の JavaScript 時代をいかがお過ごしでしょうか。 さて今日は、今、ちまたで大ブレイクの兆しを見せている DOM Storage という仕様を紹介したいと思います。 DOM Storage とは何か まず、 DOM Storage とはどんなものなのでしょうか。 とても簡単に言ってしまえば、とてもたくさんのデータが保存できてサーバーに自動で送られない Cookie みたいなものです。 さらに、 Cookie とは違って JavaScript からとても扱い易く作られています。 では、この DOMStorage の具体的なソースコードを見てみましょう。 <!DOCTYPE html> <html> <head><title>DOMStorage の使い方</tit

    Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記
  • Latest topics > 僕があまりDocumentFragmentを使っていない理由 - outsider reflex

    Latest topics > 僕があまりDocumentFragmentを使っていない理由 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « スマートロケーションバーでNOT検索できるようにしたXUL/Migemo 0.10.5をリリースしたよ Main 遊びとか気とか » 僕があまりDocumentFragmentを使っていない理由 - Jul 07, 2008 自分にはちょっと承伏できない理由でJintrick氏にDISられてるので、一応釈明しておきます。 ――「一応」と書いておきながら、Jintrick氏に「バカじゃねーの」みたいに煽られたような気がして感情的になってクドクド書き過ぎてしまったので、最初に例だけ示しておきます。 <?xml