通过javascript if else语句在不同的浏览器中显示不同的内容

时间:2015-12-07 12:34:12

标签: javascript html asp.net if-statement safari

在我的代码中,我正在检测所使用的浏览器,并尝试根据它显示不同的<div>内容。

但我的JavaScript代码无法正常运行。我的Web应用程序基于asp.net和vb.net构建。

这是我的代码:

<asp:Content ID="Content2" ContentPlaceHolderID="mainContent" runat="Server">
    <div class="btn-wrapper" id="regular-content">
        <asp:Button runat="server" ID="uxLoginButton" Text="Login"  />
        <asp:Button runat="server" ID="uxRegister" Text="Register"  />
    </div>
    <div id="safari-content">
        <p>Use another Browser </p>
    </div>
</asp:Content>

因此,如果用户使用Safari之外的任何浏览器,那么我想显示<div>的id为regular-content的内容,如果用户正在使用Safari,那么我想要显示<div>的ID为safari-browser的内容。

在我的JavaScript代码中,我检测到用户是否正在使用safari。

<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="ScriptContent">
    <script type="text/javascript">
    var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
    //document.body.innerHTML = isSafari;
    </script>
</asp:Content>

这会正确检测浏览器。如果浏览器是Safari,则isSafari的值为true,否则值为false

if (isSafari == "true") {
    document.getElementById("safari-content").style.display = 'block';
    document.getElementById("regular-content").style.display = 'none';
} else {
    document.getElementById("safari-content").style.display = 'none';
    document.getElementById("regular-content").style.display = 'block';
}

但是这不能正常工作。在所有情况下,它都显示常规浏览器内容,即如果用户使用Safari,他不应该看到常规浏览器内容,但他会看到常规浏览器内容,而不是Safari内容。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

检查它是否以boolean或string返回true为&#34; true&#34;尝试省略双引号逗号

答案 1 :(得分:1)

if (isSafari) {

而不是

if (isSafari == "true") {