タグ

ieとjsに関するhiro-takのブックマーク (9)

  • JavaScriptの動かないコード (中級編) jsonオブジェクトをevalできないエラー - 主に言語とシステム開発に関して

    連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" value="「1」と表示" onClick="f()"> <script language="JavaScript"> function f() { var str = "{x:1}"; // JSONオブジェクトにする var obj = eval(str); // プロパティを表示 alert( obj.x ); } </script> 答え IEでもFirefoxでも,「undefined」と表示されてしまう。 もしもオブジェクトのプロパティが1個ではなく,複数個だったらどうなるか。 var str = "{x:1, y:2}"; これをeval()すると,undefinedではなく,実行エラーになる。 Firebugのコンソールには「in

    JavaScriptの動かないコード (中級編) jsonオブジェクトをevalできないエラー - 主に言語とシステム開発に関して
  • @cc_on ってなに?

    amachangさんの「一行で IE の JavaScript を高速化する方法」を見てて、見慣れない/*@cc_on なんちゃらなんちゃら @*/ って記述が気になった。 なんだろうとおもい、早速ぐぐってみたところ、ここに書いてありました。 @cc_onはステートメントというものらしく「条件付きコンパイルの機能をアクティブにします。」との説明があります。 でも、「条件付きコンパイル」ってなんだよ!そんなの知らないぜ! ということで調べてみたら、以下のようなことが書いてありました。 条件付きコンパイルを使用すると、JScript の新しい言語機能を利用しながら、その新機能をサポートしていない以前のバージョンとの互換性も保持できます。JScript の新機能を使用する場合、スクリプトにデバッグサポートを埋め込む場合、コード実行をトレースする場合などは、条件付きコンパイルを使用するのが一般的で

  • IE8 で実装された Selectors API とは何か? - IT戦記

    はじめに IE8 には Selectors API という新しい仕様が実装されました。 ということで、今後 DOM 操作 API の主流になるであろう Selectors API についてまとめておきます。 Selectors API が使えるブラウザ 2008 年 3 月 6 日現在の一覧 WebKit Build Archives | WebKit (開発版の Safari) Windows | Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more (IE8 の Beta 版) Selectors API とは Selectors API とは W3C で定義された仕様です。詳細に関してはこちらをどうぞ 簡単に説明すると getElementsByTagName や getE

    IE8 で実装された Selectors API とは何か? - IT戦記
  • IEでメモリリークしてる箇所を検出しまくる方法 - hagino3000's blog

    JavaScript Memory Leak Detectorのver. 2が出てたのでリンク修正 前から気になっていたツールを実際に使ってみたのでメモ。 javascriptでメモリリークしている箇所の検出はJavaScript Memory Leak Detector、IEの使用メモリのチェックはProcess Explorerを使う。インストールはそれぞれ次のリンクを参照。どちらもwindowsの再起動はいらないって書いてあるけど、私は再起動しないと使えませんでした。 GPDE Team Blog : JavaScript Memory Leak Detector (v2) http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector_v2.aspx GPDE Team Blog : JavaScript Memor

    IEでメモリリークしてる箇所を検出しまくる方法 - hagino3000's blog
  • script要素のdefer属性の実装 - Thousand Years

    <!--HTMLでは--><script defer></script> <!--XHTMLでは--><script defer="defer"></script> script要素にはdefer属性があって、これはdocument.write系がないことを条件にscriptの中身を後で評価することによってページのレンダリングを妨げないようにするものと説明されている。ただdeferが利用されているサイトってなかなか見たこと無いうえに当にレンダリングを妨げないか興味があったので調べた。 実装されているブラウザ 調べた範囲ではIE(SafariとKon〜は調べてない)のみ。あとIEはscript要素にdefer属性をつけるとinnerHTMLに代入したscriptが実行されるという仕様がある。 // 以下は動かないので駄目 hoge.innerHTML = "hoge<script>aler

    script要素のdefer属性の実装 - Thousand Years
  • テキストボックス内でカーソル位置を移動する方法 - Enjoy*Study

    テキストボックス内のカーソル位置を末尾に設定する方法を調べてみました。 IE 6.0、Opera 8.5 の場合 var elm = document.getElementById('text'); // テキストエリアのelement取得 elm.focus(); // Operaの為(IEでは無くても大丈夫) var range = elm.createTextRange(); range.move('character', elm.value.length); range.select();当初、elm.focus()は入れてなかったのですが、Operaではこうしないとちゃんとカーソルが移動してくれません。(この動きに悩まされました) IEだと、range.select()で、フォーカスが移動し、カーソル位置もちゃんと末尾に行くのですが、Operaだと、フォーカスは移動するが、テキス

    テキストボックス内でカーソル位置を移動する方法 - Enjoy*Study
  • IEでテキストエリア内のカーソル位置を取得する - I am Cruby!

    javascriptIEでテキストエリア内のカーソル位置を取得するのはfirefoxみたいにSelectionStart,SelectionEndが無いので非常に難しい。 今ネット上には解決策が二つ程転がってると思う。1. Selection.jsを使う 2005-10-23 - こせきの日記 で作られている、Selection.jsを使えば、テキストエリア内のStart、Endが 取得できる。素晴らしい。 でも、欠点が二つ。サンプルがあるので試して欲しいんだけど、  Realtime JavaScript Evaluatorテキストの一番最後にカーソルを合わせると、カーソルが最初に戻ってしまう。(IEの場合ね)  まぁ、これについては回避するのは簡単だけど、次の問題がどうしようもない。日語の入力がおかしくなる(IEの場合ね)  これ作り的にどうしようもない。残念。。。     2.id

  • IE6以下をWeb標準に準拠させるライブラリ『IE7.js』

    IE6以下をWeb標準に準拠させるライブラリ『IE7.js』 多くの人が待ちに待ち望んだライブラリ。やはりすごい人はすごいものを作るんですね。 このライブラリを読み込むことによりIE6以下でもIE7と同じようなXHTM/CSSの解釈を行ってくれます。 ただし完全にIE7と同じような形にするのではなく、より近い形ということです。 現在公開されているバージョンはversion 2.0 (beta)ということで、まだ実務で使うのは難しいかもしれませんが、MITライセンスで公開されておりますので正式にリリースされればweb制作の現場を変えてしまうライブラリです。 設置方法 Google コードのie7-jsより直接読み込むことが可能です。 以下の要素をhead要素内などに記述します。 <!--[if lt IE 7]> <script src="http://ie7-js.googlecode.c

    IE6以下をWeb標準に準拠させるライブラリ『IE7.js』
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
  • 1