タグ

HTMLとJavaScriptに関するraimon49のブックマーク (136)

  • IE8のレンダリングモードに関するまとめ

    Apr 12, 2008 某所で行われたIE8 Beta 1についてのセミナーで、DOCTYPEスイッチとIE8の複数のモードの話を聞いていたら、頭の中がごちゃごちゃしてきたのでざっくりとまとめてみる。 レンダリングモードの使い分け まず最初に、IE8には以下の3つのレンダリングモードがあることを覚えておきます。 IE8標準準拠モード (デフォルトのレンダリングモード) IE7標準準拠モード Quirksモード (いわゆる互換モード) IE8のデフォルトでのレンダリングモードは一番上の「IE8標準準拠モード」になります。これらのレンダリングモードを覚えたら、次にIE8が備える「IE7エミュレート機能」について知っておきましょう。エミュレート機能とは「IE7とまったく同じレンダリングをする」ための機能です。つまりこの機能を有効にするとデフォルトのレンダリングモードが「IE7標準準拠モード」に

    IE8のレンダリングモードに関するまとめ
    raimon49
    raimon49 2009/03/09
    IE8は3つのレンダリングモードを持つ。JavaScriptでdocument.documentModeを参照すると、現在のレンダリングモードが判る。
  • あまり知られていない脆弱性:DOM Based XSSにご用心|アークウェブのブログ

    こんにちは、SEの進地です。 XSS(Cross Site Scripting)脆弱性の中であまり注意を払われていないタイプにDOM Based XSSというものがあります。アナウンス自体は随分と昔から行われており、webappsec.orgでも2005/7/4にAmit Klein氏が"DOM Based Cross Site Scripting or XSS of the Third Kind"を発表しています。 Web 2.0的アプリなどでのAjaxの普及でJavaScriptが多用される現在のWeb開発では、DOM Based XSSが入り込む可能性は従来よりも高まっています。そこで、今回はこのDOM Based XSSについて説明しようと思います。 DOM Based XSSとは何か? 一般的にXSS脆弱性と聞いて思い浮かべるのは、攻撃者の悪意ある入力データ(JavaScript

    raimon49
    raimon49 2009/01/26
    DOM Based XSS クライアントサイドで完結するXSS
  • フォームコントロールのデフォルト値: Days on the Moon

    WebKit のコントロール値キャッシュ対策 「日野望の会-Yabooo.org > Safari/Webkitのおせっかいキャッシュとその対策。」にコメントしたはずなのですが、いつの間にかコメントが消えているようなので推敲の上再掲。 上記のページで問題にしているのは、Safari において bfcache を無効にしていても、動的に追加したフォームコントロールの値がキャッシュされた値に書き換えられてしまうことです。これに対し、文書中のコントロールをすべて記憶し、文書のアンロード時にそれらの名前 (name 属性の値) を変更することで解決を図っています。 しかし、書き換えられるのは一時的な値のみで、コントロールのデフォルト値 (フォームをリセットしたときに設定される値) まで変化するわけではありません。ならば、コントロールが文書中に挿入されたときに、その値をデフォルト値に設定してやれば

  • 今日はIEのメモリリーク対策に注力した - SEの行き着くところ…

    参考にしたのはココ。IEのメモリリーク問題DOM オブジェクトとメモリリーク: Days on the Moon Internet Explorer 繝ェ繝シ繧ッ 繝代ち繝シ繝ウ繧堤炊隗」縺励※隗」豎コ縺吶k Googleさんに「IE メモリリーク 循環参照」で聞いた結果の上3件ってだけやけど・・。 「念のため」も含めてやったのもあるので全部が効果あったのかはわからないが、俺が気をつけたポイントは以下の通り。 DOMオブジェクトは生成後すぐにDOMツリーに追加する今まではcreateElementして、スタイルやイベントハンドラ設定した後で親ツリーに追加してた。これを生成後すぐにツリーに追加し、スタイルやイベントハンドラはその後で落ち着いてやるように変更した。 //↓こんなのを var img = document.createElement('img'); img.onmousedown

    raimon49
    raimon49 2008/11/18
    DOMツリー追加順序, 明示的なnull代入など
  • Technical documentation

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Technical documentation
    raimon49
    raimon49 2008/11/12
    document.bodyの参照をキャッシュ, 親ノードから順に挿入した方が効率的?
  • John Resig - DOM DocumentFragments

    I was playing around with DOM DocumentFragments recently, in JavaScript, seeing what I could make with them. Roughly speaking, a DocumentFragment is a lightweight container that can hold DOM nodes. It’s part of the DOM 1 specification and is supported in all modern browsers (it was added to Internet Explorer in version 6). In reading up on them I came across an interesting point, from the specific

    raimon49
    raimon49 2008/11/05
    DocumentFragment
  • DOM操作 Samples /Core

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

    raimon49
    raimon49 2008/11/05
    仕様へのリンク, ブラウザ毎の動作リスト付き
  • The Performance of Dynamic Site (id:amachang) - monjudoh’s diary

    Javaユーザーグループ 概要 JavaScriptの誤解 重くしている犯人 プロファイラ JavaScriptの誤解 JavaScriptは遅い 速いです 重くしている犯人 DOM DOMをフェーズに分けて考える JavaScriptとコンポーネント(C++)との通信(取得) DOMノードの追加、値の変更 スタイルの計算 レイアウトの計算 JavaScriptとコンポーネント(C++)との通信(取得) XPConnectやCOMとの通信 単純なプロパティアクセスの数十倍(IE以外は無視しておk) COMは重い 通信回数=DOMのオブジェクトの「.」の数 DOMノードの追加、値の変更 取得の場合と同じ「.」の数 ノードに変更したというフラグが立つ parent.appendChild(child)だとparentとchildにフラグが立つ。 重要:再計算がJavaScriptの実行後に

    The Performance of Dynamic Site (id:amachang) - monjudoh’s diary
    raimon49
    raimon49 2008/10/17
    >通信回数=DOMのオブジェクトの「.」の数
  • MJL ― MITSUE-LINKS JavaScript Library | 制作/開発 | ミツエーリンクス

    概要 MJL (MITSUE-LINKS JavaScript Library)は、ミツエーリンクスで標準利用されるJavaScriptライブラリです。 MJLは弊社内における業務効率を改善するために、統一された設計思想、利便性の向上を念頭においた上で設計・開発されました。 MJLは他のJavaScriptライブラリ群とは異なる設計思想により、独特の特徴を持ちながらも他のライブラリと補完しあえるものを目指しました。 MJLはコピーレフトライセンスであるGNU GPLに基づく自由ソフトウェア(フリーソフトウェア)です。弊社は GNU GPLに則り、ページにてMJLの全ソースコードを公開します。 ライセンス MJLはGNU GPL Version 3(参考邦訳)のもとに提供されます。 詳細はMJL体ファイル内のライセンス告知をご覧ください。 ダウンロード MJL体(圧縮版) mjl.js

    raimon49
    raimon49 2008/10/10
    代替要素を考慮したFlashの埋め込みがある。
  • XSS: 今こそXSS対策についてまとめよう - 徳丸浩の日記(2008-08-22)

    _今こそXSS対策についてまとめよう 沢出水(さわ いずみ)さんからトラックバックを頂戴した。 元々はホワイトリスト方式の優位は神話というエントリでホワイトリストはどう作る?を引用(批判)した事が発端の模様です。 一見真っ向対決しているようなので興味深く読ませていただいたのですが、正直、両者の主張の違いがわかりません。 どちらもXSS等インジェクション系の対策としてはアプリケーションで入力値が正しい形式の範囲内かチェックし、出力時に必要なエスケープ処理を行う、という結論に思えるんですけど… [ホワイトリストとブラックリストより引用] ご指摘の通りで、XSS対策は入り口でのバリデーションと表示(HTML組み立て)時のエスケープだ。しかし、元ブログの主題はホワイトリストとブラックリストの比較なので、「ただ、表面的に文章を追っただけでは『何をホワイトリストと呼ぶのか』という部分がだいぶ違う印象を

    raimon49
    raimon49 2008/08/24
    >原理から正しく学ぶということは、HTMLなりJavaScriptの文法をしっかり学ぶことでもある。
  • Paint : Microsoft Paint Online

    Microsoft Paint is also known as MS Paint. It is a basic graphics drawing program that has been an indispensable part of all versions of the Microsoft Windows operating system. MSP provides easy ways for creating different types of graphics with different tools. The tools include brushes, shape generators, pens, and erasers. Many users of Windows might also be unaware of its presence, considering

    Paint : Microsoft Paint Online
    raimon49
    raimon49 2008/08/22
    canvasをサポートしたブラウザで動くペイントソフト。
  • http://diaspar.jp/node/155

    See related links to what you are looking for.

    raimon49
    raimon49 2008/08/22
    canvas上にdivをz-index:1でかぶせて連携させた例
  • escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()

    ウェブを扱うライブラリやプログラムで必ずと言って良いほど見かけるものに、escapeHTML という関数があります。 "&" 等、特別な意味を持つ文字を、表示等のために実体参照 (&amp;) に変換するお決まりの関数なんですが、実装には色々とバリエーションがあるものです。 1. String#replace メソッドを繰り返す (MochiKit 等) function escapeHTML(str) { return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); }このパターンが最も多く見受けられます。Ruby でも同様に gsub を繰り返す方式を見かけることがあります (例: RSS::Utils.html_escape)。 2. Str

    escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()
    raimon49
    raimon49 2008/08/13
    いつも(1)だった。prototype.js の発想は無かった。
  • 第6回 イベントハンドラから脱却しよう

    今回はイベントについて学んでいきましょう。JavaScriptによるアプリケーションを作成するうえでは,イベントは欠かすことができない要素です。 ここでは,旧来より使われてきたイベントハンドラのおさらいと,イベントハンドラの問題点を考察します。そして,イベントハンドラに置き換わるW3C DOMイベントモデルの基礎を学んでいきます。 イベントとは イベントとは,ブラウザ上で発生した出来事全般のことを表します。例えば,ブラウザに表示された画面上でマウスをクリックしたり,テキストボックスに文字を入力するといったように,閲覧者が何か操作したときにイベントが発生します。また,HTMLがブラウザに読み込まれたり,別のページに移動したという現象もイベントとして認識されます。 まずはじめに,旧来より使われてきたイベントハンドラについておさらいしましょう。 イベントハンドラ イベントをJavaScript

    第6回 イベントハンドラから脱却しよう
  • codeなにがしのソース表示ウィジェット制作ノウハウ - WebOS Goodies

    個人的にいろいろと立て込んでいて時間が経ってしまいましたが、 5 月にcodeなにがしがリニューアルしました。実は私も少しお手伝いさせていただきまして、ソースコード・ノウハウッ!のソースコード表示部分の JavaScript ウィジェットを制作しました。そこで、日は新版codeなにがしのご紹介とともに、ソースコード表示ウィジェットの制作ノウハウなどを公開します。まあ、高度なことをやっているわけではありませんが、実例として多少は世の中の役には立つかな、と思っています(^^ゞ なお、これらの情報は OpenType 様の許可をいただいて掲載しています。情報公開を快諾してくださった OpenType 様に感謝いたします。 codeなにがしについてご存じない方もおられると思いますので、簡単にご紹介を。codeなにがしはソフトウェア技術者向けのノウハウ共有サービスで、主にユーザー間の FAQ コー

    raimon49
    raimon49 2008/08/02
    名前空間汚染の意識 外部スタイルシートを BODY 内で読み込む
  • 日本語テキストをテーブルで表示する:高速化バージョン

    いやなブログ: 日語テキストをテーブルで表示するの高速化バージョン。 DOMでのHTML組み立ては非常に遅くてJavaScriptの配列で組み立ててから 一気にinnerHTMLに代入したほうが速い。特にIEの場合は差が顕著、5倍ぐらいは速いはず。 DocumentFragmentを使うという手もあるが、2倍程度にしか速くならなかった。 innerHTMLを使ったほうが良い、というわけではなくて時と場合によりけり。 innerHTMLとappendChildを組み合わせて使うと大体の場合最速。 こういうやつ tmp = document.createElement("div"); tmp.innerHTML = 複雑なHTML; body.appendChild(tmp); body.innerHTML += tmp.innerHTML は絶対に避ける。innerHTMLの読み書きは、ど

    raimon49
    raimon49 2008/07/10
    >innerHTMLとappendChildを組み合わせて使うと大体の場合最速。
  • 「フロントエンド・エンジニア」という呼び名のパワー - モジログ

    私の仕事は、Zope/PloneをベースとしたカスタムCMS(その顧客専用のコンテンツ管理システム)を開発するというもので、これは「Web開発」とか「サーバサイド開発」とか呼ばれるカテゴリに入る。 これに対して、HTMLCSSJavaScriptなどクライアントサイドの開発・コーディングを担当する人を、最近のWeb業界では「フロントエンドエンジニア」と呼ぶ場合があるようだ。これはなかなかいい呼び名だと思う。 一般的に「Webデザイナー」と呼ばれる人の仕事は、じつに幅広い。ビジュアル的に「デザイン」すること(どんなサイトにするかの「絵」を作ること)や、サイトの構造・ラベリング・ナビゲーションといった「情報アーキテクチャ」を決めること、そしてHTMLCSSJavaScriptといった技術によってそれらを実装することは、それぞれ異質な作業であり、別種のスキルが求められる。 最近はこうし

    raimon49
    raimon49 2008/06/25
    >HTMLやCSS、JavaScriptを「きれい」に書けるという技術は、一般的にはその価値がなかなか見えにくいけれども、きわめて重要だし、投資対効果の高いスキルだと思う。 / スキルを際立たせるためにも名前が重要。なるほど
  • '<scr'+'ipt>'の意味 : やむにやまれず

    2007年05月20日20:13 by 山崎泰宏 '<scr'+'ipt>'の意味 カテゴリJavaScript Tweet sparklegate Comment(0)Trackback(0) わかってしまうとくだらないメモ JavaScriptの他人のソースを読んでいて、時々 '<scr'+'ipt>'って出てくるけど何で?と思ったので調べてみた。 結局、HTMLのパーサに タグとして読み込まれないようにするためにするものだった。 <script> document.write ( '<script src="example.js"></script>' ); </script> 上記のままだと、 関数に引き渡した文字列中の</script>までをスクリプトだと判定してしまうってこと。 HTML のレベルではJavaScriptの文法を判定しているわけではない。 なのでみんなこれを回避

    '<scr'+'ipt>'の意味 : やむにやまれず
    raimon49
    raimon49 2008/06/24
    けどこれで誤認識くらったことないのよね
  • ウノウラボ Unoh Labs: ブログパーツ貼り付けタグのまとめ+Googleガジェット@はてな

    ごらんの通りこれらのタグは、一部例外を除き少なくとも上表にあるブログサービスでは、すべてOKかすべてNGかのどちらかで、つまりこれらのひとつがNGなら他のタグもNGであるようなので、どのタグを選択するか、ブログサービス側の制限を考慮して悩む必要はないようです。 そうするとFlashオブジェクトの表示は、「Internet ExplorerでのActiveXコントロールのアクティブ化問題」を考慮するなら、OBJECTタグを直接記述するのは避けて、JavaScriptで行ったほうがよいのかなと。 全般的な留意点 貼り付けコードはブログの投稿設定などに影響されないように配慮しておく必要があります。特に、サイドバーだけではなく記事文中にも貼り付けられることを想定している場合は、以下の設定は、殆どのブログサービスで記事文の投稿についてはデフォルトでONの筈なので、こうした設定に影響を受けないもの

  • 【ハウツー】ゼロからはじめるS5 - スクリプトひとつでプレゼンサイト (1) S5の概要 | パソコン | マイコミジャーナル

    S5とは? S5はブラウザ上でプレゼンテーション(以下プレゼンと省略)を行なうJavaScriptライブラリです。プレゼンを行なうアプリケーションとしてはパワーポイントが最も有名です。パワーポイントで作成されたプレゼンデータとブラウザ上で作成されたプレゼンデータには違いがあります。 S5の実行結果 ブラウザ上で処理されるプレゼン用のプログラムでは(X)HTML+CSSベースで処理されるため、Webブラウザを搭載しているデバイスであればプレゼン用の資料を閲覧することができるわけです。つまりゲーム機 や携帯電話でもパソコンでも見ることができます。何よりも手軽に作成できるところが利点です。 ブラウザ上で動作するプレゼンライブラリはいくつかありますが、S5は独自のフォーマットではなくOpera Show Format 1.0を採用しています。Opera Show Format 1.0はこちらのUR