タグ

JavaScriptとIEに関するraimon49のブックマーク (125)

  • IDEA*IDEA 〜 とあるサービス運営者が学んだことをまとめるブログ

    raimon49
    raimon49 2008/07/08
    IEのcontentEditableとFirefoxのdesignMode
  • "+="でも不十分、IEで性能発揮するには文字列サイズにも工夫必要 | エンタープライズ | マイコミジャーナル

    Tom Trenka氏は以前SitePenにおいてString Performance: an Analysisというタイトルのもとで興味深いドキュメントを公開した。同ドキュメントはdojox.string.Builderのパフォーマンスを改善することを目的として行われた分析の結果をまとめたもので、JavaScriptプログラミングには欠かせない興味深い結論が導き出されていた。 これまでのテクニックに従えば、文字列は一旦配列に分解してから操作をおこない、最後に文字列に戻した方が処理が高速になると考えられてきた。以前のIEであればその貧弱な文字列処理性能やGCの動作の影響でそれは事実だったが、最近のWebブラウザでは改善されており配列に分解するよりも"+="で連結した方が処理が高速になることが明らかになった。これがString Performance: an Analysisでの主な結論だ。

  • クロスブラウザデバッガNitobiBug登場、Firebugと組み合わせ強化 | エンタープライズ | マイコミジャーナル

    WebアプリケーションのデバッグツールとしてはFirebugが有名だ。FireBugを使うことでJavaScriptの実行のみならずCSSHTMLのデザインも調査できる。もはやWebアプリ開発には欠かせないツールだ。Firebugをベースにして開発されたYSlowもWebサイトのパフォーマンスを分析するツールとして代表的存在といえる。 クロスブラウザデバッグツール NitobiBug FirebugもYSlowもとても便利なツールだが、問題はFirefoxのアドオンとして実装されているということだ。Firefoxのシェアは純増しているとはいえ、Net Applicationsの調査によればIEのシェアは73%をこえている。6%のシェアを突破したSafariの存在も無視できない。そこでデバッグツールとしてクロスブラウザで動作するNitobiBugに注目してみたい。 NitobiBugはNi

    raimon49
    raimon49 2008/06/10
    >Firefox以外のブラウザでどういった値が保持されているのか、どういったDOMに展開されているのかをチェックできる。
  • getElementById()でname属性が検索される? - 宇宙野武士は元気にしているか

    getElementById()でname属性を検索してエレメントを取得できるという話を聞いた。 いや、絶対に推奨されている使い方ではないだろう。 そもそもIDはページ内でユニークだからgetElementById()はエレメントを返して、 複数設定できるname属性用にArrayオブジェクトElementオブジェクト(NodeListオブジェクト) で返ってくる、getElementsByName()があるのだから。 でも、実際できるって聞いたし。 だから、調べてみた。 ほんとにとれるのか? サンプルのHTML + JavaScriptを用意する。 <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns

    getElementById()でname属性が検索される? - 宇宙野武士は元気にしているか
    raimon49
    raimon49 2008/05/23
    >IEはgetElementById()はidとname属性両方を対象に検索して最初に見つかったものを取ってくるようだ。 / これは・・・
  • 動画をHTMLに埋め込むヒント - faireal.net

    新種ブラクラ: 画像の表示だけでIEがクラッシュ (2002-05-04) Flash Playerにセキュリティホール、最新版で修正 (2002-05-04) 動画をHTMLに埋め込むヒント (2002-05-03) 動画を MediaPlayerコントロールとしてHTMLにうめこむときに: 「ActiveXが使えない環境でも困らない」「ActiveXをオフにしている環境で警告ダイアログが出ないようにする」「停止状態で動画中のひとこまが静止画で見えるようにする」 新種ブラクラ: 画像の表示だけでIEがクラッシュ 2002年 5月 4日 記事ID d20504a XBM画像の扱いに問題 IE5.5以上またはOE5以上を簡単にクラッシュさせる新種のブラクラが報告されました。画像を表示しようとするだけでフリーズするので、通常のセキュリティレベルの設定では、ふせげません(画像を非表示にすればふせ

    raimon49
    raimon49 2008/04/10
    レガシーIEのActiveXがOFFで、XMLHttpオブジェクトが作れないとき、どう回避するか? の参考に。
  • Adobe - ActiveX コンテンツ使用Webサイトの準備

    多くの方がMicrosoft Internet Explorerの変更についての発表を目にしたことでしょう。その結果、埋め込み("アクティブ")コンテンツやアプリケーションを使用したWebサイトがどのような影響を受けるのか、疑問をお持ちのことと思います。アクティブコンテンツには、Macromedia Flash、Shockwave、またはAdobe Acrobatファイルなどが含まれます。おそらく、その準備のために何をすべきか、検討を開始されていることでしょう。 ブラウザの更新がサイトに与える影響 ブラウザの変更が与える実際の影響はどのようなものなのでしょう。このような変更はいつ行われるのでしょうか。明日または来週になっても、ユーザはアクティブコンテンツを表示できるのでしょうか。 ユーザは、Internet Explorerブラウザの更新プログラムを適用するまでは、埋め込みコンテンツや

    raimon49
    raimon49 2008/04/07
    1回クリックしてもらわないとFlashがアクティブにならない現象を回避するには、JSで動的にFlashコンテンツを埋め込む必要がある。めんどくせー
  • JavaScriptで画像を切り替える際に、あるコードだとIE6で動かなくなる

    IEでのJavaScriptの動作確認は悪夢を見ること多々ですが、また謎仕様に遭遇。かなり長時間はまりました。。 動作例(PHPのソース) 先日作ったCAPTCHAを人間が見ても読めなかったときに画像を新しく生成し直す仕組みを考えていました。単純に、リンクをクリックするとJavaScriptが呼び出され、img要素のsrcを書き換える、という仕組み。上の動作例では?以降の引数にどんどん「a」を加えていく実装になっています。なおこのCAPTCHAはリロードすれば同じファイル名でも再生成されます。 hrefにはjavascript:void(0)を指定してonClickの方にコードを書く癖がついているので、今回もそれでやってFirefoxでは問題なく動いていたのですがIE6でなぜか動かず。onClickの中は実行されていますが、srcを書き換えても画像ファイルへのリクエストがなされません。です

    raimon49
    raimon49 2008/03/13
    href=javascript:void(0)の場合は、onclickの最後にreturn falseを加える。
  • javascript - event.target で IDを省略 : 404 Blog Not Found

    2006年09月22日02:30 カテゴリLightweight Languages javascript - event.target で IDを省略 DHTMLの世界では、DOM objectにはみんなIDをふっておいて、document.getElementByID(id)でobjectを取得してそれをいじくるというのが王道ですが、いじくる対象がイベントを発生させたobject自身しかないならIDは省略できるいうお話。 よくあるのは、 function foo(id){ // あるいは // function $(id){ return document.getElementById(id) } // を定義しておいて$(id)を使う var elem = document.getElementById(id); // ... } とやってから <a href="#" id="bar

    javascript - event.target で IDを省略 : 404 Blog Not Found
    raimon49
    raimon49 2008/03/07
    IEはevent.targetが無い。コメント欄のreturn event.target || event.srcElement は良いなぁ。
  • 【詳報】セマンティックWebに向かうIE8の「8つの強化点」

    この記事は会員登録で続きをご覧いただけます申込は簡単3分! 今すぐ会員登録(無料) 会員の方はこちら 【この画面が表示された方限定】 会員登録(無料)で14日間有料記事が読み放題 ※14日間試読付き登録会員のお申し込みはお1人様1回限り

    【詳報】セマンティックWebに向かうIE8の「8つの強化点」
    raimon49
    raimon49 2008/03/06
    デバッグツールの標準搭載は良いなぁ。一番の問題は、標準準拠云々よりも移行方式・・・。
  • 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())の方が良い。
  • テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study

    テキストエリアでのリターンキーで、submitイベントが発生しないようにする場合、ブラウザ毎にどのような処理を書けばいいのか調べてみました。(submitイベント自体に処理を追加せずに、テキストエリアでのイベントで制御したかったので) テキストエリアでのリターンを拾えるイベントとしては、下記の3つがあります。 keypress keydown keyup イベントをキャンセルする方法は、IEのJScriptの実装と、DOM 2のEventモデルでの実装である下記の2パターンを試しました。 event.preventDefault() event.returnValue=false そして確認の結果、上記のイベント×キャンセル処理の組み合わせでsubmitイベントがキャンセル出来るのは、下記のパターンとなりました。 IE 6 keydown - event.returnValue=false

    テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study
    raimon49
    raimon49 2008/01/23
    IEはevent.returnValue=false, Firefoxはevent.preventDefault()
  • 文字列外部化による JavaScript 高速化についての考察 - IT戦記

    JavaScript において、文字列を外部化することで当に高速化できるのかについて考察してみました。 まず、以下のコードを用いて IE 6.0 SP2, Opera 8.5, Firefox 1.5.0.1 でテストしてみます。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ja" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Language" content="ja" /> <titl

    文字列外部化による JavaScript 高速化についての考察 - IT戦記
  • IEでinnerHTMLを変更できない場合がある - ヒルズで働く@robarioの技ログ

    Prototype.jsのElement.update読んだらちゃんと対策されてた。 だそうです。 久々に「ハメられた!」という気分になりました。 ビューとモデルを分離するために、昨日JavaScript版簡易Template-Toolkitをちょろっと書いて使っていました。その時点では上手く動いていたのですが、今日テストをしていたところIEで意味不明なエラーが出て実行できませんでした。そのエラーメッセージはなんと「不明なランタイムエラー」。。。 ・・・(ノ#゚Д゚)ノ ==== ┻━━┻ まさに意味不明なランタイムエラーです。 このテンプレートもどきは、指定した要素のinnerHTMLをごにょごにょ書き換えています。Googleで「IE 不明なランタイムエラー」を検索すると・・・ 原因 TABLE と TFOOT と THEAD と TR 要素の innerHTML プロパティは、読み取

    IEでinnerHTMLを変更できない場合がある - ヒルズで働く@robarioの技ログ
    raimon49
    raimon49 2008/01/18
    これIE7でも起きる。Prototype.jsのElement.update読んだらちゃんと対策されてた。
  • 【JavaScript】これ(this)はなに?

    JavaScriptでプログラムを組んだり人の作ったコードを読んでいると、よく出てくる“this”という表現。 これ、例えば同一の関数内のはずなのに、そのときどきで指しているものが異なったりして結構わかりにくい、と感じる方も多いのではないでしょうか。 ■同一関数内で'this'が指すものが異なる例 function whatisthis(obj) { alert('[A](this===window)→'+(this===window)+' [B](this===obj)→'+(this===obj)); } var obj={ obj_whatisthis : whatisthis }; var ref_whatisthis = obj.obj_whatisthis; var obj2={ ref2_whatisthis : obj.obj_whatisthis }; //(1)関数とし

    【JavaScript】これ(this)はなに?
  • innerHTMLとか(IEとFireFoxの差異) - perl 覚え書き日記 - Hatena::Group::Perl

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

    innerHTMLとか(IEとFireFoxの差異) - perl 覚え書き日記 - Hatena::Group::Perl
    raimon49
    raimon49 2008/01/08
    IEではidをはさむ「"」が消える、タグ名称は大文字に(IE7でも確認)。
  • anything from here offsetLeft,offsetTop,offsetWidthそしてoffsetHeight──静的配置要素の絶対位置を確実に取得する方法について

    結論概要 通常配置要素の絶対座標上の位置を取得するJavascriptコードは、ウエブ上や書籍でかなり流布されている。しかし、それらは正しく絶対座標を提供しないものが多い。 だから仕方なく、コードの進行過程をチェックし、ブラウザ毎に必要となる補正を行うコードを追加し、確実に正しい座標値を得る方法を確立した。そのコードはこのエントリイの末尾に掲載し、検討経過を克明に下記にまとめた。 なお、改訂したコードが対応するブラウザはIE7、FF2及びOpera9であり、safariは検証する術がなかった。 object.offset○○は大変便利なプロパティ それは位置と大きさを与えてくれる。それはマイクロソフトが定義し、Mozzillla系も随随した便利この上ない属性だ。 さて、これらの4つのプロパティは片や位置を、片や大きさを取得する。異なる属性取得を同じoffsetで行うのだ。しかも嫌がらせとし

    raimon49
    raimon49 2007/12/18
    絶対位置とサイズ取得の概説。図解が素晴らしい。
  • jmblog.jp - preventDefault() と stopPropagation()

    先日公開した「投稿スラッグ(Post slug)が空白なら警告してくれるWordPress用Greasemonkeyスクリプト」を開発しているときに、JavaScriptでのイベントのキャンセルまわりで見事にハマってしまいました。そのときに調べてわかったことをまとめてみようと思います。(間違いがあれば是非ご指摘ください!) やりたかったこと WordPressの投稿画面で「公開(Publish)」ボタンをクリックしたときに、「投稿スラッグ(Post slug)」のテキストボックスに値が入っていなければ、確認ダイアログを出す。そこで「キャンセル」ボタンが押されたら、フォームの submit を中止する。 最初に思いついた方法 まず頭に浮かんだのは、submit ボタンに対して HTML でイベントハンドラを記述するという、とても古典的な方法でした。

    raimon49
    raimon49 2007/12/18
    submit時のイベントまわり。めちゃめちゃ参考になった。
  • JavaScript/DOM » イベント » eventオブジェクト(イベント情報の取得) | PHP & JavaScript Room

    サンプルを見る<script type="text/javascript"> /* イベントの型を取得 */ function getEventType(event){ var frmObj=document.frmevent; frmObj.elements["txt"].value=event.type; } </script> <form action="#" name="frmevent"> <input type="text" onFocus="getEventType(event)" /> <input type="checkbox" onclick="getEventType(event)" /> <select onchange="getEventType(event)"> <option value="">▼選択してください</option> <o

    raimon49
    raimon49 2007/12/14
    >eventオブジェクトのtargetプロパティはIEではサポートされていないため、undefinedが返されます。
  • IE の getAttribute / setAttribute: Days on the Moon

    DOM の getAttribute / setAttribute メソッドは DOM Level 1 から定義されているメソッドで、MSDN Library によれば IE はバージョン 4 からサポートしています。しかし、IE での element.getAttribute(name) / element.setAttribute(name, value) というのは、基的には JavaScript における element[name] / element[name] = value のシンタックスシュガーでしかありません。ですから、element.setAttribute("innerHTML", "foo") とすると、element の属性には何の変化もないが element の内容が書き換えられるという事態になります。 この (手抜き) 実装が原因で、getAttribute

    raimon49
    raimon49 2007/11/29
    new Functionしなきゃってのは、知らないと一生抜け出せなくなるなぁ。
  • IEのメモリリークが直ってるっぽい。 - zorioの日記

    javascriptで循環参照するようなコードを書くとメモリリークするIEのバグが、6月のWindows Updateで直ってるそうだ。 Ajaxian » IE Memory Leaks Be-gone http://ajaxian.com/archives/ie-memory-leaks-be-gone 確かに、KBでメモリリークが直ったような事が書いてある。 http://support.microsoft.com/kb/933566/ http://d.hatena.ne.jp/zorio/20060316/1142528060 で書いたコードで試してみた。 普通に循環参照:http://zoriolab.info/leaktest1.html クロージャ使用:http://zoriolab.info/leaktest2.html 毎月WindowsUpdate後にスナップショット