Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测IE和边缘浏览器?_Javascript_Browser Detection - Fatal编程技术网

Javascript 如何检测IE和边缘浏览器?

Javascript 如何检测IE和边缘浏览器?,javascript,browser-detection,Javascript,Browser Detection,无法使视差在IE或Microsoft Edge中正常工作。我在论坛上看过,还没有找到解决问题的办法。我希望现在能想出一个解决办法。如果用户正在使用IE或Edge,我希望显示一条消息。不确定如何检测正在使用的浏览器是一个或两个 下面是我正在尝试使用的一些javascript代码: <script src="https://github.com/ded/bowser/blob/master/src/bowser.js"></script> // Determine

无法使视差在IE或Microsoft Edge中正常工作。我在论坛上看过,还没有找到解决问题的办法。我希望现在能想出一个解决办法。如果用户正在使用IE或Edge,我希望显示一条消息。不确定如何检测正在使用的浏览器是一个或两个

下面是我正在尝试使用的一些javascript代码:

<script src="https://github.com/ded/bowser/blob/master/src/bowser.js"></script>

    // Determine Browser Used
browser = require('bowser').browser; becomes browser = require('bowser');
if (bowser.msie || bowser.msedge) {
  alert('Hello Microsoft User');
}

//确定使用的浏览器
浏览器=要求('bowser')。浏览器;变成browser=require('bowser');
如果(bowser.msie | | bowser.msedge){
警报(“你好,Microsoft用户”);
}
如果有更好的解决方案,我们将不胜感激


我怀疑您是否真的需要检测浏览器。但无论如何,它在这里(实际上不需要使用库):

对我来说,这更好:

var uA = window.navigator.userAgent,
    isIE = /msie\s|trident\/|edge\//i.test(uA) && !!(document.uniqueID || document.documentMode || window.ActiveXObject || window.MSInputMethodContext),
    checkVersion = (isIE && +(/(edge\/|rv:|msie\s)([\d.]+)/i.exec(uA)[2])) || NaN;

开始运行:

我使用这些函数,即使用户代理设置为其他功能,这些函数也可以工作

if (document.documentMode) 
{
    console.log('Hello Microsoft IE User!');
}

if (!document.documentMode && window.msWriteProfilerMark) {
    console.log('Hello Microsoft Edge User!');
}

if (window.msWriteProfilerMark) 
{
    console.log('Hello Microsoft User!');
}
这会检测边缘/边缘(又称阿纳海姆)

函数isEdg()
{ 
对于(var i=0,u=“Microsoft”,l=u.length;i
这检测铬:

function isChromium()
{ 

    for (var i = 0, u="Chromium", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}
function isChromium()
{ 
对于(var i=0,u=“Chromium”,l=u.length;i
忘记这条消息,人们不希望被告知使用其他浏览器访问您的网站。人们想要内容。只要这是可访问的,他们不会介意任何视差丢失。Edge似乎有固定背景的问题,导致它们在滚动时上下跳跃。然而,我认为这是一个与浏览器相关的问题,而不是您的代码的问题。更可靠的方法是进行功能检测,而不是浏览器嗅探。我如何进行此功能检测?最近似乎建议使用可能重复的功能检测,但这一概念存在缺陷。问题是有可能实现一个特性,但仍然存在缺陷,这意味着您不能以期望的方式使用它。因此,您必须检测带有特定错误的浏览器,以使页面在该浏览器上工作。或者有更好的方法来解决浏览器错误吗?这在Microsoft Edge 42.17134.1.0中不再适用了。这不适用于IE8+。它只适用于Edge。在MS Edge中,XMLHTTPRequest对象不会引发进度事件,也没有很好的方法对此进行功能检测,因此这是使用它的一个原因(现在它已修复,我必须执行版本检测xD)-
function isEdg()
{ 

    for (var i = 0, u="Microsoft", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}
function isChromium()
{ 

    for (var i = 0, u="Chromium", l =u.length; i < navigator.plugins.length; i++)
    {
        if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u)
            return true;
    }

    return false;
}