0

Web サイトのデザインが IE10 で正しく動作しないため、更新しています。

条件付きコメントと JavaScript の組み合わせを使用して IE のバージョン検出を処理していましたが、IE10 では前者が削除され、後者を無視する理由が見つからないため、ここで助けを求めています。私はこのスレッドを読んでいます:

JavaScript で IE バージョン (v9 より前) を検出する

しかし、JavaScript についての私の知識はそれほど大きくないので、自分のコードを変更する必要があるのか​​、それとも廃棄してその URL に記載されているコードを採用して変更する必要があるのか​​ (もしそうなら、どのようにすればよいか) はわかりません。 )。

私が現在使用しているコード:

<link rel="stylesheet" type="text/css" href="barebones.css">

  <!--[if lte IE 8]>
    <link rel="stylesheet" type="text/css" href="ie.css">
  <![endif]-->

  <!--[if gt IE 8]>
    <link rel="stylesheet" type="text/css" href="default.css">
  <![endif]-->

<script type="text/javascript">
    //<![CDATA[
    var appName = window.navigator.appName;
if (appName !== "Microsoft Internet Explorer")
document.write("<link rel=\"stylesheet\" type=\"text\/css\" href=\"default.css\" \/>");//]]>
</script>

それが助けになるなら、自分のサイトの URL を投稿することはできますが、サイトのトラフィックを増やそうとしていると人々に思われたくありませんでした。

私が現在使用しているコードを少し改良できることはわかっていますが、春の大掃除をする前に物事を機能させたいと思っています。

複数のマシンの IE10 は JavaScript を完全に無視しているように見えますが、その理由はわかりません。IE9はそれをうまく処理します。

どんな援助でも大歓迎です。

4

4 に答える 4

2

上記の多くの回答が気に入っていますが、特定の問題に対する一連の可能な迅速な修正を行うことで、すべての違いが生じる場合があることを知っています. したがって、これが私が見つけた別の解決策であり、うまく機能します。

<script language="javascript" type="text/javascript">
    if(Function('/*@cc_on return 10===document.documentMode@*/')()) document.documentElement.className+= ' ie10';
</script>

次に、ブラウザー固有の css ルールを実装するために、適切な css ファイルに次のように追加します (たとえば)。

.ie10 div{new css rule}
.ie10 div{another new css rule}
于 2013-11-06T18:57:50.933 に答える
0

最近、解決策としてcss browser selectorを採用しました。これは特定の css クラスをドキュメント ルートに追加する js であり、ハッキングなしで css 内のブラウザーでスタイルの不一致を処理できます。かなり古いものでIE10には対応していませんが、他の方もおっしゃっているようにIE10が標準です。ただし、IE6、7、および 8 を処理するため (これらのブラウザーに対して特別な対策を講じているようです)、うまくいくと思います。

一般に、このようなブラウザ固有のハックやチェックは避けるべきです。これらは保守が難しく、常に機能することが保証されていないためです。

于 2013-03-24T19:39:05.497 に答える
0

IE10 は条件付きコメントを認識せず、ブラウザのバージョンを検出する必要があるため、これを行う関数を実装しました。

    function getIEVersion() {
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { 
        /*
         * sample user-Agent
         * "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 
         */
         //test for MSIE x.x;
         var ieversion = new Number(RegExp.$1); // capture x.x portion and store as a number
         return ieversion;
        }
    return -1;
    }

    alert(getIEVersion());

IE のバージョン番号を返します。(例: 10、9、7..)

于 2013-05-06T13:08:04.517 に答える