タグ

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

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとjavascriptとDOMに関するn2sのブックマーク (89)

  • 改行コード、pre、textarea - FAX

    JavaScriptpre要素内の文字を変更する際、改行コードの扱いが各ブラウザで異なるようなので以下コードで調べました。 var pre = document.getElementsByTagName('pre')[0]; pre.innerHTML='[R]\r[N]\n[NR]\n\r[RN]\r\n[END]'; pre.appendChild(document.createTextNode('[R]\r[N]\n[NR]\n\r[RN]\r\n[END]')); innerHTMLで追加した結果は以下です。IEOperaFirefox\r空白のみ○○\n空白のみ○○\n\r空白のみ改行×2改行×2\r\n空白のみ○○ createTextNodeで追加した結果は以下です。IEOperaFirefox\r○○×\n空白のみ○○\n\r○改行×2○\r\n改行+空白○○ この結果を見

    n2s
    n2s 2008/06/17
    preタグにTextNode突っ込む時の挙動。IE6だと「\r\n」にしないといけない…だけで終わる話ではない模様。/ http://web.archive.org/web/20110902050715/http://d.hatena.ne.jp/brazil/20060917/1158465641
  • javascript - json2dom() & dom2json() : 404 Blog Not Found

    2008年06月15日06:00 カテゴリLightweight Languages javascript - json2dom() & dom2json() これまた車輪の再発明ではあるのですが、前に自分で作ったものを含めて気に入ったのがなかったので。 /lang/javascript/dom2json/ - CodeRepos::Share - Trac Demo Source: <div><!-- comment will be ignored --> <img alt="dan" src="http://www.dan.co.jp/~dankogai/dan-180x240.png" style="float:left" width="45"> The quick brown fox jumps over the blazy lazy.dog. <p class="pp" styl

    javascript - json2dom() & dom2json() : 404 Blog Not Found
  • データが1件の時だけ、JavaScriptの必須チェックが誤動作する:CodeZine

    上の画面は、ワークフロー機能でよくある承認画面です。チェックボックスで選択したデータは、[承認]ボタンをクリックすることで、状態を「承認待ち」から「承認済み」へ変更できます。入力チェックとして、「選択0件で承認ボタンをクリックしたときはエラー表示」という処理をJavaScriptで実装しています。 ところが、データが1件の時だけ、「選択しているのに『1件も選択されていません』というエラーが出る」というバグが発生しました。バグコード 入力チェックのコードは、次のようになっていました。 function check() { var sentakuChk = document.form1.sentakuChk; for (var i=0; i<sentakuChk.length; i++) { if (sentakuChk[i].checked) { return true; } }

    n2s
    n2s 2008/06/10
    「JavaScript上でフォーム部品は、同名の要素が複数あるときのみ配列として扱われます」これは気をつけないと。/ てゆかナベアツコード噴いた
  • length プロパティのパフォーマンス: Days on the Moon

    「for 文 2.0」(IT戦記) では length プロパティの評価をループの外に出すことにより高速化を図っています。DOM の NodeList オブジェクト (document.getElementsByTagName() などで取得) や HTMLCollection オブジェクト (document.forms などで取得) の length プロパティは「生きている」(オブジェクト取得後の操作が反映される) 、すなわち誤解を恐れずいえば評価のたびに数えなおす必要があるので遅いというのも納得ですが、JavaScript のネイティブオブジェクトである配列の length プロパティはどうなのでしょうか。実際に調べてみました。 以下は 10000 個の span 要素に対する NodeList オブジェクトと配列の length プロパティのパフォーマンスを調べた結果です。数値は

  • MSIEでDOM Level2 HTML

    はじめに XML/(X)HTML文書の動的な制御には、DOMがよく使われるけれども、MSIEでは云々…という話がしょっちゅうある。ここでの目的は、ぽかぽかWeb研究室のDOM Level 2 標準技術をMSIEで使うシリーズ(イベント、基操作、XML読み込みとXPath)と同様、MSIEも視野に入れつつなんとか標準技術の便利さを享受しよう、というアプローチ。別名、悪あがき。 今回はECMAScript(JavaScript,JScript)を用いてDOM2HTMLのプロトタイプをあれこれいじれるようにしてみたい。 DOM Level2 HTMLのプロトタイプ ECMAScriptには、プロトタイプ(雛形)にプロパティを追加してやると、同じ雛形を用いてコンストラクタ(工場)から生成されたオブジェクトはみんな同様のプロパティを持つ/扱えるようになる、という仕組みが採用されている。で、ECMA

  • IEでHTMLElement.prototypeの代替手段 - Thousand Years

    FireFoxなどにあるHTMLElementのprototypeに共有の便利メソッドを突っ込みたいという欲求があるんですがIEでは実装されていないのでうまくいきません。googleっても出てこねぇよ!ということで仕様読む。MSDN見ていたらどうやらIEではDOMイベントなどの定義にはprototypeではなくHTC(HTML Component)という機構で実装されているからだそうで…*1 DIVエレメントに共通のonclickイベントを仕込む 以下のスクリプトは全てのDIV要素にonclickイベントを仕組むスクリプトです。alert("hoge");されます。 ■hoge.htc <public:component> <public:attach event="onclick" onevent="hoge()" /> <script language="JScript"> funct

    IEでHTMLElement.prototypeの代替手段 - Thousand Years
    n2s
    n2s 2008/03/18
    HTCを使う方法
  • IEで複数行選択のselect要素を作る (それなりブログ)

    javascriptのIE6用クロスブラウザ対応の話です。 仕事javascriptを使うと普段はスルーしていた だるい部分をスルーできなくなり、必然的にこういう内容が多くなります。 普通の複数行選択select要素の作成方法 var select = document.createElement("select"); select.multiple = true; alert(select.type); // "select-multiple" XP-FireFox1.5とMac-Safari2で確認しました。 糞XP-IE6の場合 var select = document.createElement("<select multiple>"); alert(select.type); // "select-multiple"; multiple属性にtrueを入れる方法だと、ク

  • Opera の id, name 問題 - IT戦記

    Opera たん… getElementsByName で id もとれる // <input name="foo" id="bar" /> // <input name="bar" id="foo" /> var elms = document.getElementsByName('foo'); alert(elms.length); // 2 ( id="foo" のほうも選択しちゃう ) getElementById で name だけとれる // <input name="foo" id="bar" /> // <input name="bar" id="foo" /> var elm = document.getElementById('foo'); alert(elm.id); // bar

    Opera の id, name 問題 - IT戦記
    n2s
    n2s 2007/11/10
    ちょうど今読んでるfutomiさんの本でも取り上げられていました。Opera 9.5では修正されるんですね。
  • DOM Events とブラウザの実装: Days on the Moon

    ブラウザ上でのイベント処理の仕組みは DOM 2 Events および DOM 3 Events 草案にて規定されています。しかし、DOM 2 Events で言及されていない部分など、細かい動作はブラウザごとに異なっていることもあります。そうした仕様と実装の差異を、「作って納得! DOM 2 Events」で触れなかったものも含めて、いくつかまとめてみました。 ターゲットフェーズで呼び出されるリスナ DOM 2 Events のイベントモデルにおいて、あるノードでイベントが発生すると、そのノードの祖先ノードのイベントリスナが呼び出されるキャプチャリングフェーズ、そのノード自身のイベントリスナが呼び出されるターゲットフェーズ、再び祖先ノードのイベントリスナが呼び出されるバブリングフェーズと、3 段階にわたってイベントが伝播していきます。このうちターゲットフェーズでは、addEventLis

    n2s
    n2s 2007/10/17
    OperaとFirefox等ではuseCapture=trueなイベントハンドラの扱いに差異がある、等