在我的代码中,我正在检测所使用的浏览器,并尝试根据它显示不同的<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内容。
我该如何解决这个问题?
答案 0 :(得分:2)
检查它是否以boolean或string返回true为&#34; true&#34;尝试省略双引号逗号
答案 1 :(得分:1)
if (isSafari) {
而不是
if (isSafari == "true") {