1

私はこれが簡単であることを知っていますが、これを機能させることができないようです。ページが読み込まれると、ブラウザがチェックされます。クロムの場合はdivを非表示にしたいが、それ以外の場合は表示したい。

アラートを使用してチェックしたので、ブラウザーは正常に検出されますが、非表示ビットは検出されません。手伝ってくれますか

function browserTest() {
    var browser = /Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent);
    if (browser) {
        document.getElementById("chromeBox").style.visibility = "hidden";
        //alert("chrome");
    }
    else {
        document.getElementById('chromeBox').style.visibility = 'visible';
        //alert("not chrome");
    }
}
4

3 に答える 3

1

みなさん、ありがとうございました。現在は機能しており、divの後に関数を呼び出す必要があります。私はjavascriptを初めて使用するので、まだこのような基本的なエラーを犯しています。

ありがとう

于 2013-01-18T10:33:07.240 に答える
1

あなたの DOM で何が起こるかを理解できないようですので、ここに例を示します: http://jsfiddle.net/mgechev/uwc3B/2/

コードは次のとおりです。

JavaScript

function browserTest() {
    var browser = /Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent);
    if (browser) {
        document.getElementById("chromeBox").style.visibility = "hidden";
        //alert("chrome");
    }
    else {
        document.getElementById('chromeBox').style.visibility = 'visible';
        //alert("not chrome");
    }
}
browserTest(); //should be called on DOM ready

HTML

<div id="chromeBox">
It's not Chrome!
</div>

CSS

#chromeBox {
  width: 100px;
  height: 100px;
  background: #ccc;
  position: absolute;
}

browserTest本文の最後または DOM の準備が整ったときに呼び出す必要があります。

于 2013-01-18T10:15:16.210 に答える
1

ここでいくつかの問題が発生する可能性があります。

1) browserTestdiv が実際にロードされる前に実行されます (<head>たとえば、以下のようなコードでセクションで実行される場合):

<head>
  <script>
     function browserTest() { .... }
     browserTest(); - div is not loaded here yet and getElementById will return nothing.
  </script>

これを修正するには、スクリプト セクションを chromeBox div html マークアップの後に配置するか、onload イベントで browserTest を実行します (これにより、div が既に読み込まれていることが保証され、getElementById が検出されます)。

<head>
  <script>
     function browserTest() { .... }         
  </script>
....
</head>
<body onload="browserTest()">
  ....

2) div に本当に ID があるかどうかを確認しますchromeBox。ID は大文字と小文字が区別されるため、検索されdocument.getElementById("chromeBox") ません<div id="ChromeBox">

visibility:hidden は div を非表示にしますが、そのためのスペースは確保されていることに注意してください。style.display = "none"/style.display = "block" を使用する方がよいかもしれません

また、開発者ツールの使用方法も学びます。すべてのブラウザにそれがあります。Firefox の場合、Firebug をインストールする必要がある場合があります。F12 を使用して呼び出すだけで、コンソールにエラーが表示されているかどうかを確認できます。

于 2013-01-18T10:18:34.923 に答える