gpt4 book ai didi

php - 使用 Javascript 检测浏览器

转载 作者:行者123 更新时间:2023-12-02 19:16:03 26 4
gpt4 key购买 nike

这个问题的推理

我知道浏览器检测永远不可能 100% 可靠,因为用户代理 header 总是可以伪造,但是,我对此并不担心。

虽然关于这个主题有很多问题,但它们似乎都很老了,所以为了得到最新的答案,我觉得我应该再次问这个问题。

我目前正在使用 PHP browscap 检测服务器端的浏览器名称和版本,然后将名称和版本返回到 javascript 变量中(不是一个很好的方法)。我需要这样做的原因只是为了在访问者不使用受支持的浏览器时向他们显示一条消息。

当前方法(类似):

<script type="text/javascript">
var browser = new Array();
browser['browser'] = '<?php echo $browser_name; ?>';
browser['version'] = '<?php echo $browser_version; ?>';
browser['error'] = '<?php echo $browser_error; ?>';
</script>

最好在客户端执行此操作,因为 browscap 可能会非常慢,并且它会阻止我将值从 PHP 传递到 javascript 变量。 如果您认为使用 PHP 是更好的方法,请在您的答案中说明,这只是我的意见。

问题

因此,我的问题很简单,以下链接是确定浏览器名称和版本的可靠方法吗?

Javascript Detect

我知道需要添加新的浏览器,这并不困扰我。我更关心使用的算法是否可靠。

提前致谢

更新1

要明白我的意思,请查看 https://www.icloud.com/在 Internet Explorer 7 或更低版本中。您将收到一条消息,指出该浏览器不受支持。这对于 IE 来说很容易做到,因为您只需使用 <!--[if gt IE...但是,我需要测试所有浏览器。

最佳答案

这看起来不对,您可以从 Javascript 获取浏览器信息。无需混合 JS 和 PHP 代码即可做到这一点。

您可以执行以下操作来仅使用 JavaScript 来获取和检测用户浏览器:

var userAgent = navigator.userAgent.toLowerCase();
var old = false;

// Internet Explorer 7
if (userAgent.indexOf('msie 7.0b') !== -1) { old = true; }
else if (userAgent.indexOf('msie 7.0') !== -1) { old = true; }

// Internet Explorer 6
else if (userAgent.indexOf('msie 6.1') !== -1) { old = true; }
else if (userAgent.indexOf('msie 6.01') !== -1) { old = true; }
else if (userAgent.indexOf('msie 6.0b') !== -1) { old = true; }
else if (userAgent.indexOf('msie 6.0') !== -1) { old = true; }
...
// Detect any other browser versions you consider old

if(old = true) {
// Show notification and alert users that they are using old browser
}

这是使用 JS 实现的方法,但您也可以使用 HTML 来实现:

<!--[if lte IE 6]>
// include your .css style or do whatever you want to alert users their browser is old
<![endif]-->

对你的问题的简短回答是肯定的,以你的方式检测用户浏览器是错误的,因为你可以使用纯 JavaScript 甚至 HTML 来做到这一点。这里不需要混合 PHP 和 JS 代码,最终 PHP 和 JS 都会得到相同的 UserAgent 信息。

关于php - 使用 Javascript 检测浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com