0

私はこれに1時間以上取り組んできましたが、何が問題なのかわかりません...コードは以下のとおりです

var webkit = (browsername == (("Safari")||("Chrome")))? true : false;

chromeとsafariに対して真の値を返す必要がありますが、Internet Explore、Opera、Firefoxでは返されません。なぜsafariではtrueを返すが、chromeでは返されないのですか?助言がありますか?

少し変更しても、これは実行されます

if (browsername == (("Safari")||("Chrome")))
        webkit = true;

私は自分のことをしているのですか、それとも間違っていますか?

4

5 に答える 5

3

そうです。そのはず

var webkit = (browsername == "Safari")||(browsername == "Chrome");
于 2013-03-26T07:37:46.500 に答える
1

このタイプを使用してください

if (browsername == ("Safari")||browsername == ("Chrome"))
    webkit = true;
于 2013-03-26T07:38:19.720 に答える
0

そのように使用することはできません||。次を使用する必要があります。

var webkit = (browsername == "Safari" || browsername == "Chrome");

if (browsername == "Safari" || browsername == "Chrome") { ... }
于 2013-03-26T07:37:47.537 に答える
0

はい、 or==演算子を間違った方法で使用していると思います。== JavaScriptでは、一度に1つの値と1つの異なる値しか比較できないため、口頭言語での使用とは動作が異なります。試す:

var webkit = (browsername == "Safari" || browsername == "Chrome") ? true : false;

編集:冗長な三項演算子についてのヒントをくれたAlnitakに感謝します:

var webkit = browsername == "Safari" || browsername == "Chrome";
于 2013-03-26T07:40:24.607 に答える
0

jqueryでこれを試すこともできます:

    $(document).ready(function () {
        var browser=$.browser.webkit;
    });

chromeとsafariの場合はtrueを返し、他のブラウザの場合は「undefined」を返します。

于 2013-03-26T07:42:05.383 に答える