【问题标题】:How to tell user to open page in Chrome with Browser Detect如何使用浏览器检测告诉用户在 Chrome 中打开页面
【发布时间】:2018-08-17 12:53:52
【问题描述】:

我想添加一条消息,告诉用户如果他们不在该浏览器中,则用 chrome 打开页面。如何调整以下内容以使用 document.write() 而不是 alert(),并且如果它们已经在 chrome 中,也排除写入消息?我在这里找到了以下浏览器检测代码:https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator

var sBrowser, sUsrAg = navigator.userAgent;

if (sUsrAg.indexOf("Chrome") > -1) {
    sBrowser = "Google Chrome";
} else if (sUsrAg.indexOf("Safari") > -1) {
    sBrowser = "Apple Safari";
} else if (sUsrAg.indexOf("Opera") > -1) {
    sBrowser = "Opera";
} else if (sUsrAg.indexOf("Firefox") > -1) {
    sBrowser = "Mozilla Firefox";
} else if (sUsrAg.indexOf("MSIE") > -1) {
    sBrowser = "Microsoft Internet Explorer";
}

alert("You are using: " + sBrowser);

【问题讨论】:

  • 是的。可以调整。
  • 请注意,强烈建议不要使用document.write。在 Chrome 中,它甚至在控制台中显示为警告。

标签: javascript alert browser-detection


【解决方案1】:

如果用户正在使用 chrome,一个简单的解决方案是不为 sBrowser 分配任何值,然后检查 undefined

var sBrowser, sUsrAg = navigator.userAgent;

if (sUsrAg.indexOf("Safari") > -1) {
  sBrowser = "Apple Safari";
} else if (sUsrAg.indexOf("Opera") > -1) {
  sBrowser = "Opera";
} else if (sUsrAg.indexOf("Firefox") > -1) {
  sBrowser = "Mozilla Firefox";
} else if (sUsrAg.indexOf("MSIE") > -1) {
  sBrowser = "Microsoft Internet Explorer";
}

if (sBrowser != null) {
  document.write("You are using " + sBrowser + ". Use Chrome instead"); // or whatever
}

这种方法的一个问题是您必须考虑现有的每一个浏览器。只需检查 chrome,然后告诉其他人使用它。您无法告诉他们他们正在使用什么浏览器,但这在这里似乎并不重要。

var sUsrAg = navigator.userAgent,
  usingChrome = sUsrAg.indexOf("Chrome") > -1;

if (!usingChrome) {
  document.write("You are not using Chrome. Switch to blah blah blah"); // or whatever
}

【讨论】:

    猜你喜欢
    • 2012-04-21
    • 1970-01-01
    • 2015-09-08
    • 2013-12-26
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多