あなたはあなたが作業しているブラウザを検出したい場合は、IEは特別な機能を持っているが、条件付きコンパイルと呼ばれる - http://www.javascriptkit.com/javatutors/conditionalcompile.shtml
バージョンを取得するには、@_jscript_version
を使用すると思います。だから、JavaScriptで、私が使用したい:
<script type="text/javascript">
var isIE10 = false;
/*@cc_on
if (/^10/.test(@_jscript_version)) {
isIE10 = true;
}
@*/
console.log(isIE10);
</script>
を私はIE10を持っていませんが、IE9でテストする場合、動作しているようです。ブラウザのモードを7または8に変更すると、@_jscript_version
には真のブラウザのJScriptバージョン(私の場合は9
のままです)があります。
JScriptのバージョンの一覧は、http://en.wikipedia.org/wiki/JScript#Versionsで確認できます。 IE10は表示されませんが、10と仮定します。IE9以前は、ブラウザのバージョンと矛盾する数字を使用していましたが、9以降は適切な軌道に入っている可能性があります。@_jscript_version
がデフォルトで10しかし、私はそれが "10"で始まり、おそらくマイナーバージョンを持っていると思います。
UPDATE:
コメントの縮小を避けるために、あなたのようなものを使用することができます
var IE = (function() {
"use strict";
var ret, isTheBrowser,
actualVersion,
jscriptMap, jscriptVersion;
isTheBrowser = false;
jscriptMap = {
"5.5": "5.5",
"5.6": "6",
"5.7": "7",
"5.8": "8",
"9": "9",
"10": "10"
};
jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")();
if (jscriptVersion !== undefined) {
isTheBrowser = true;
actualVersion = jscriptMap[jscriptVersion];
}
ret = {
isTheBrowser: isTheBrowser,
actualVersion: actualVersion
};
return ret;
}());
をとの内部値から翻訳されIE.isTheBrowser
とIE.actualVersion
(のようなプロパティにアクセスJScriptバージョン)。
出典
2013-04-04 19:52:37
Ian
軽減しようとしている「ブラウザのバグ」とは何ですか? – Ian
ブラウザのモードを変更すると内部変数が変更されるかどうか分かりませんが、条件付きコンパイルを使用して '@ _jscript_version'が" 10 "(メジャーバージョン)で始まるかどうかを確認できます。 – Ian
特定のシナリオでは、フラッシュ部分がコンテナ領域全体をカバーしないため、1ピクセル幅が狭くなります。あなたはあなたの解決策を精緻化できますか?それはjs解決策であることはありません。 – gztomas