• ベストアンサー

FirefoxがJavascriptに一部対応していない理由

FirefoxがJavascriptに一部対応していない理由 質問させてください。JavaScriptを勉強中です。 event.ctrlKeyなど、JavaScriptの一部機能がFireFoxに対応していないと聞きました。 対応していない理由は、何かあるのでしょうか? JavaScriptもFireFoxも、Netscape Communications社(とその支援を受けて設立されたMozilla Foundation)が作成したものなので、完全に対応していても良い気がするのです。 単純に気になっただけなのですが、理由をご存知の方がおられましたら教えていただきたいです。

  • ryu-e
  • お礼率72% (202/278)

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.2

event.ctrlKey は Firefox, IE 共に対応していますが、両ブラウザはeventオブジェクトの仕様が若干違いますね。 > JavaScriptもFireFoxも、Netscape Communications社(とその支援を受けて設立されたMozilla Foundation)が作成したものなので、完全に対応していても良い気がするのです。 Firefox はDOM仕様に従って、eventオブジェクトを定義しています。 IE はJScript仕様に従って、eventオブジェクトを定義しています。 質問者さんの仰る「JavaScript」は定義が曖昧で今となっては「ECMAScript」「DOM」に準ずると思うのですが、その観点で標準実装に近いのはFirefoxの方ではないでしょうか。 addEventListener - Document Object Model Events http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-EventTarget-addEventListener element.addEventListener - MDC https://developer.mozilla.org/ja/DOM/element.addEventListener attachEvent Method (A, ABBR, ACRONYM, ...) http://msdn.microsoft.com/en-us/library/ms536343%28VS.85%29.aspx Document Object Model Events http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-eventgroupings event - MDC https://developer.mozilla.org/ja/DOM/event event - DHTMLリファレンス http://msdn.microsoft.com/ja-jp/library/cc427885.aspx イベントオブジェクトまとめ - Archiva http://archiva.jp/web/javascript/event-object.html Microsoftも最近はWeb標準に力を入れていて、IE9 から DOM L2 Events に対応し、addEventListenerにも対応するとしています。 Internet Explorer 9 Preview Builds http://msdn.microsoft.com/en-us/ie/ff468705.aspx#_Document_Object_Model IE9 preview - JavaScript Side - latest log http://d.hatena.ne.jp/uupaa/20100317/1268811754

ryu-e
質問者

お礼

仕様の違いなのですね。丁寧な説明ありがとうございました。

その他の回答 (2)

  • think49
  • ベストアンサー率59% (285/482)
回答No.3

#2 です。 「DOM L2 Events」のEventインターフェースのURLハッシュ値が間違っていたので、訂正します。 1.4 Eventインタフェース - Document Object Model Events http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-interface event - MDC https://developer.mozilla.org/ja/DOM/event event - DHTMLリファレンス http://msdn.microsoft.com/ja-jp/library/cc427885.aspx イベントオブジェクトまとめ - Archiva http://archiva.jp/web/javascript/event-object.html

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

対応しています。(なんで対応していないことになったのでしょうか?) 以下のサンプルコードで、キーコードやctrlキーが識別できることを確認してみてください。  https://developer.mozilla.org/en/DOM/event.ctrlKey

ryu-e
質問者

お礼

対応できているのですね。大変申し訳ありませんでした。

関連するQ&A

  • ほとんどのブラウザに対応したキーイベントのプログラムをJavascri

    ほとんどのブラウザに対応したキーイベントのプログラムをJavascriptで書きたいのですが、 IEではwindow.eventは使えましたがFireFoxなどでは定義されていないエラーになります。 ブラウザごとのキーイベントについて知りたいです。 IE,FireFox,Safari,Chrome,Opera,Netscape,Other

  • JavaScriptが有効にならないブラウザやOSってありますか?

    JavaScriptが有効にならないブラウザやOSってありますか? 古いブラウザやマイナーなやつだとJavaScriptが有効にならないような気がするのですが。(Netscape 2.0だと有効にならないという話しを聞いたことがあるような・・・) 1、JavaScriptが有効にならないブラウザやOSを教えてください。 2、Mozilla 1.7.5やSafariや携帯(i-mode)でもJavaScriptが有効になるか教えてください。 以上、2つの質問になります。よろしくお願い致します。

  • FireFoxでsetCaptureするには

    最近JavaScriptをかじっているものです。 早速ですが、IE5.5以降限定でsetCaptureというメソッドがありますが、FireFoxなど、Netscape系のブラウザで同様の機能を実現するにはどうすればよいでしょうか? ブラウザのウィンドウからマウスが出る事を想定しているので、上位エレメントのイベントを使う、という事はできないと思います。 よろしくお願いします。

  • Mozilla系ブラウザの場合

    こんにちは。毎度、お世話になります。 下記のJavaScriptを、教えて下さい。 「もし、Windows OSで、Mozilla系ブラウザならば、即座にリロードさせたい!」 (Mozilla系ブラウザ:Netscape7.x、Mozilla1.7.x、FireFox1.0.x) よろしく、お願いします。

  • firefoxのエラーコンソールについて

    MozillaのFirefoxのポータブル版の「Firefox Portable」を使用しています。 http://portableapps.com/apps/internet/firefox_portable しばらく前から、(一部の)新しいアドオンをインストールしようとすると 「アドオンのインストール時にエラーが発生しました エラーコンソールを参照してください」 のようなメッセージが表示されるようになりました。 そこでエラーコンソールを見たところ、 「エラー: p.onStatusChange is not a function ソースファイル: chrome://browser/content/tabbrowser.xml 行: 519」 と出力されていたのですが、Firefoxのエラーの原因と思われるjavascriptを改造したことがないので理由が分かりません。 ググって検索したのですが、解決法は見つかりませんでした。 ちなみに、アドオンは40個ほど入っております。(数が多いのでもしかすると一部のアドオンによる問題かもしれませんが...) もし、インストールしたアドオンの情報が必要であれば、補足要求をお願いします。 どなたか、原因が分かる方、教えていただけますか?

  • どれだけのブラウザに対応できる仕様にすればいいですか?

    特にあらゆるブラウザでの閲覧を想定した企業サイトのソースを見てみると、最初の方になにやら長いJavaScriptが書いてあります。呼んでみると、どうやらどのブラウザを使っているかでif else構文でプログラムを分岐させ、それぞれのブラウザに対応した処理をさせているようです。確かにJavaScriptやCSSには一部のブラウザでしか機能しないものもあるので、効果的な使い方だと思います。 しかし思ったのですが、それではどれだけのブラウザで正しく機能できるような仕様にしたら良いのでしょうか? 僕が知っている限りでは、メジャーなブラウザソフトというとInternetExplorer,Netscape,Opera,Firefoxがあります。もし使いたいプログラム文が全てのブラウザに対応していれば問題はありませんが、そうでない場合は先に言ったようなプログラムの分岐が必要になります。しかし、その場合もまたそのブラウザで実行させるにはどのような文を書けば良いのかなどの問題も出てきます。また、バージョンも問題もあるでしょう。OS(Winの場合のみ動作する、など)の問題の場合もあります。

  • ブラウザ依存のレイアウト・・・どうにかなりませんか?

    タグ自体もそうかもしれませんが、CSSを利用すると IEとFirefoxで全くレイアウトが異なります。 Mozilla側に合わせればいいと思ってやってたのですが、 片方に合わせると片方が崩れます。 しかもNetscape、Macブラウザなどでまた違うとか言われたら泣きます。 一体どうすれば良いのでしょうか? CSSは利用したいです。JavaScriptは利用しません。 利用しないほうがいいタグや属性などあるのでしょうか?

  • JAVAScriptがローカル環境で利用できるか

    サークル活動をHTML形式で紹介する予定です。 ついてはJAVAScriptで一部を記述したいのですが、 そのJAVAScriptがCD-R内にある場合、 セキュリティ上の理由から動かないような気がします。 HTMLがローカルにある場合、JAVAScriptは 動作できるのでしょうか。

  • 軽量なブラウザはどんなものがあるでしょうか?

    Netscape7、InternetExplore6、Opera7、Mozilla1.x、 FireFox0.x等Windows対応のWebブラウザはいろいろある みたいですが、軽量コンパクト(MS-Officeなどのソフト と同時に複数起動させても重たくならない)のは、どれ でしょうか? 他にもっと軽量で高機能のブラウザはあるでしょうか?

  • javascriptで別ページに・・・ 続編

    こんにちは。 前回質問させて頂いた事で、特定のユーザーエージェントからのアクセスを任意の別ページに飛ばす方法に成功しました。 下記がそのソースです。 このソースの例では、Internet ExplorerからのアクセスをヤフージャパンTOPページに飛ばす方法です。 ------------------- <script type="text/javascript"> <!-- document.write('<p>ブラウザの判別:'); if(navigator.userAgent.indexOf("Opera") != -1){ // 文字列に「Opera」が含まれている場合 document.write('あなたのブラウザは Opera ですね?'); } else if(navigator.userAgent.indexOf("MSIE") != -1){ // 文字列に「MSIE」が含まれている場合 location.href="http://www.yahoo.co.jp/"; } else if(navigator.userAgent.indexOf("Firefox") != -1){ // 文字列に「Firefox」が含まれている場合 document.write('あなたのブラウザは Firefox ですね?'); } else if(navigator.userAgent.indexOf("Netscape") != -1){ // 文字列に「Netscape」が含まれている場合 document.write('あなたのブラウザは Netscape ですね?'); } else if(navigator.userAgent.indexOf("Safari") != -1){ // 文字列に「Safari」が含まれている場合 document.write('あなたのブラウザは Safari ですね?'); } else{ document.write('判別できませんでした。'); } document.write('</p>'); // --> </script> ----------------------------------- これに対して追加質問させて頂きます。 (1)ユーザーエージェントの指定が上記のままではInternet Explorer利用者の全員が対象になってしまうので、さらにUAを絞り込んで、 例 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.1; SV1) ↑この様に、より長く具体的に絞り込んでUAを指定する事は不可能でしょうな。 自己のアクセス解析で得られた情報を記述してテストしましたが、成功しませんでした。 半角や全角の違いか?それともスペースに問題があるのか分かりません。 (2)上記の例では、ユーザーエジェントで判定しておりますが、ホストで判定する事は不可能でしょうか。 自己の場合の「softbank***********.bbtec.net」でテストしましたが、やはり成功しませんでした。 お手数ですが宜しくお願いします。

専門家に質問してみよう