Javascript 现在使用用户代理字符串来检测IE11不再有问题了吗?
我知道在检测浏览器时使用用户代理字符串的不足和缺点,但在我目前在该公司的项目中,运行该网站时唯一有问题的是Internet Explorer 11,因为它无法读取我们制作的Javascript类(非常长)和我们使用的ES6箭头。和其他人尝试做的一样,我将此代码放入我的控制器中,并在blade上运行php。这只适用于整个网站的4个页面。我知道功能检测是最值得推荐的,但是如果我使用UA嗅探仅仅是为了让一些页面只在IE11中工作,并且由于IE11基本上被微软抛弃了,没有新的IE版本/功能会出现,这意味着字符串“trident/”不会改变,这是一个可行的选择吗?如果可能的话,我想听听你的意见 控制器Javascript 现在使用用户代理字符串来检测IE11不再有问题了吗?,javascript,php,laravel,Javascript,Php,Laravel,我知道在检测浏览器时使用用户代理字符串的不足和缺点,但在我目前在该公司的项目中,运行该网站时唯一有问题的是Internet Explorer 11,因为它无法读取我们制作的Javascript类(非常长)和我们使用的ES6箭头。和其他人尝试做的一样,我将此代码放入我的控制器中,并在blade上运行php。这只适用于整个网站的4个页面。我知道功能检测是最值得推荐的,但是如果我使用UA嗅探仅仅是为了让一些页面只在IE11中工作,并且由于IE11基本上被微软抛弃了,没有新的IE版本/功能会出现,这意味
$exactBrowserNameUA = $_SERVER['HTTP_USER_AGENT'];
if(strpos(strtolower($exactBrowserNameUA), 'trident/')) {
Session::put('is_internet_explorer', true);
} else {
Session::put('is_internet_explorer', false);
}
刀片
@if(Session::get('is_internetexplorer')==false)
@否则
@恩迪夫
<>代码>如果只是代码>类< /代码> ES和箭头函数,请考虑使用巴别塔来自动转换Babeli,但使用脱机转换。如果不是IE11,则包含原始编写的代码,如果是,则包含Babel transpiled代码。我注意到传输的代码非常慢,有时页面显示和完成加载需要10-13秒。
@if(Session::get('is_internet_explorer') === false)
<script type="text/javascript" src="{{asset('js/original_es6_code.js')}}" charset="UTF-8"></script>
@else
<script type="text/javascript" src="{{asset('js/babel_transpiled_code.js')}}" charset="UTF-8"></script>
@endif