とあるページのサンプルプログラムを解剖して、JavaScriptの勉強をしているのですが。
それに以下のような記述があったのですが。
document.compatMode == "BackCompat"
document.compatMode == "CSS1Compat"

このcompatModeとは何なんでしょうか...?
さらに、BackCompatとかCSS1Compatというのもどういう意味なのでしょうか...?

どなたか教えていただけないでしょうか。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

IE6以降の標準準拠モードのスイッチが入っている場合CSS1Compat、


入っていなければBackCompat
このチェックができるようです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
標準準拠モード??
IE6、使ったことがないんですよね...これは使ってみなくてはならないですねぇ。

お礼日時:2002/03/07 23:45

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QChromeの document.getElementById(...).click() が無効

下記のサンプルプログラムが期待した動作をしません。

〇期待している動作
button1 をクリックすると、2つのタブが表示される。

〇IEとChrome(バージョン 43.0.2357.130 m)
IEでは、期待している動作をしますが、Chromeでは、button1のタブしか表示されません。

対応方法を、ご存知の方は教えて下さい。

<html>
<body>

<form method="post" target='_blank' name="FORM1">
<input type="submit" name='button1' id='button1' value="button1" onclick='javascript:func1()'>
</form>

<form method="post" target='_blank' name="FORM2">
<input type="submit" name='button2' id='button2' value="button2">
</form>

<script type='text/javascript'>
function func1(){
// alert('button1!') ;
document.getElementById('button2').click();
}
</script>

</body>
</html>

<?php
var_dump($_POST) ;
?>

下記のサンプルプログラムが期待した動作をしません。

〇期待している動作
button1 をクリックすると、2つのタブが表示される。

〇IEとChrome(バージョン 43.0.2357.130 m)
IEでは、期待している動作をしますが、Chromeでは、button1のタブしか表示されません。

対応方法を、ご存知の方は教えて下さい。

<html>
<body>

<form method="post" target='_blank' name="FORM1">
<input type="submit" name='button1' id='button1' value="button1" onclick='javascript:func1()'>
</form>

<...続きを読む

Aベストアンサー

>逃げ手が他に無いか

ポップアップブロックさえ回避できるのであれば
(特定のサイトでユーザーに任意にブロック解除させることができるなら)
setTimeoutすればいけそうですけどね

function func1(){
setTimeout(function(){document.getElementById('button2').click();},0);
}

Qdocument.getElementById( ).style.displayについて

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.display = 'inherit';
document.getElementById(Cid).style.display = 'inherit';
document.getElementById(Did).style.display = 'none';
document.getElementById(Eid).style.display = 'none';
}
★スタイルシートの内容
#page {width: 910px;}
#ai{height: 33px;display:inherit;}
#kaki{height: 33px;display:none;}
#img_ai{margin: 0px;float: left;display:none;}
#img_kaki{margin: 0px;float: left;display:inherit;}

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.displ...続きを読む

Aベストアンサー

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit';  ※
  document.getElementById(Cid).style.display = 'inherit';
  document.getElementById(Did).style.display = 'none';
  document.getElementById(Eid).style.display = 'none';
}

現在は、※の箇所でエラーが発生します。
試みに、一行目の'none'を'xxxx'に変えると、そこでエラーが発生します。
これは、代入値が受付可能なものでないとエラーとなる事を示しています。

ちなみに以下のMSDNのライブラリでも、displayプロパティに対する設定値として'inherit'は
出てきません。
(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/css/reference/css_ref_attributes_entry.asp)

一方で、FirefoxのCSS対応表
(http://f57.aaa.livedoor.jp/~motohiko/CSS/css2.1.html)
「'run-in', 'inline-block', 'inline-table' には非対応。」とありますが、'inherit'は対応している
ようです。

代替手段はありそうですが、質問者の方が'inherit'をどのような意図で使っているかわかりかねるので
その点はお答えかねます。

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit'...続きを読む

Qネスケではdocument.main.日本語.valueは絶対だめ?

下記のように日本語のテキストボックスの場合、ネスケではエラーになってしまいますが、日本語のままでできる裏技はないものでしょうね・・・。

function zipsearch()
{
n = document.main.郵便番号.value;
subWin = window.open('zipsearch.cgi?zip=' + n ,"zipsearch","width=300,height=100")
}

Aベストアンサー

それ以前にNetscape以外でも日本語は使わない方がいいですよ。
ただでさえ日本語処理にはバグや妙な仕様が多いですから。

どうしても日本語を使いたいのなら、属性名ではなく、値の扱いをすればなんとかなるのではないでしょうか。
n = document.main["郵便番号"].value;
ただ、どちらにせよこのCGIにGETメソッドで渡す動作はうまくいかないと思います。
nの内容がURLエンコードされませんので。

このエンコードに関することは、ブラウザに任せるのが最良、というのが私の意見です。
JavaScriptでもescape()やencodeURI()等の一見使えそうな関数がありますが、
実は文字コードの問題でうまく動作しません。
なので、既存のフォームと異なる動作を実現する場合にはFORMを動的に生成する、等の手法が必要になります。
単にFORMを新しいページにsubmitしたいのであれば、HTMLの記述で
<FORM target="_blank ...>
とすればOKです。

Qif(document.all && navigator.appVersion.indexOf('Mac')!=-1)returnの意味

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ、で、falseが返されるのでしょうか?
しかし、そもそもnavigatorオブジェクトはブラウザの種類のことではないのか?と混乱してしまっています。
また、document.allがどのような役割を果たしているのかも分かりません。なぜここでdocument.allが出てくるのでしょうか?

どなたか分かる方いらっしゃいましたら、ご教授宜しくお願いします。

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ...続きを読む

Aベストアンサー

「document.all」は昔はIEにだけ存在するオブジェクトだったのでIEであるかどうかの判定に使われました。

今ではOperaやNetscape等でもIEへの互換の為に存在するのでIEかどうかの判定に使われる事は減ってきています。
IEであるかどうかの判定ではなく、純粋にdocument.allが在る(使える)かという判定にはもちろん使用されますが。

「navigator.appVersion」は確かにブラウザの種類なんですが、実際にはOS名も含まれていたりすのでOSの判定にも使われたりします。

また、 != -1 というのは indexOf関数の結果が 0~なら文字列が見つかったという意味(真偽ではなく、見つかった位置を返す関数)になるのでこういう比較式を使用しています。
(1でなかったらMacユーザという解釈はちょっと違います。)

参考URL:http://www.openspc2.org/JavaScript/ref/

Q

人気Q&Aランキング

おすすめ情報