360浏览器兼容问题

360浏览器无法打开vue项目

序:

在vue项目开发之后,发现用户使用360浏览器无法进入项目,或是打开F12发现有报错。

原因:

360浏览器有极速模式(webkit内核)和兼容模式(IE内核)两种,因为360打开时使用的是兼容模式,但是项目又没有兼容IE(Trident)内核,导致了项目打不开。

极速模式: 是以Blink(Webkit)为内核的浏览模式,Blink内核具有更高的网页浏览速度和更好网页渲染效果。但由于少部分网银、政府、税务、办公系统等网站对Blink的兼容性不佳,若打开此类网站发现异常,请手动切换到“兼容模式”下继续浏览。

兼容模式: 360极速浏览器调用Trident内核(IE内核),Trident内核具有网页兼容性好、页面适用性广的特征,对于部分在默认“极速模式”下出现问题的网页(如:使用了Activex控件、页面代码只支持Trident内核、网页中注明使用IE浏览器)的情况下,切换“兼容模式”就可以正常使用网站功能。

解决方案:

方案1(比较麻烦):

​ 可以引入babel-polyfill或者core-js来解决IE兼容问题,但是这样子比较麻烦。如果你的项目本身就是不需要兼容IE的,那么这样子做就没有什么必要。

解决方案2(推荐):

在vue项目 public文件夹下的index.html中添加一个meta标签:

**注意:**这个meta标签最好紧跟着head标签。

<meta name="renderer"  content="webkit">

这样子,在使用360浏览器打开你的网址的时候,就会默认以极速模式(谷歌内核webkit)来打开我们的vue项目,项目就能正常运行了。

**注意:**但是如果用户在该网址下(一定是在该网址下切换,浏览器会记录这个网址的模式),手动切换到了兼容模式,则打开的时候一定会以兼容模式来打开。

因为浏览器极速13版本:强制锁定极速模式(无法手动切换)>手动切换>meta指定>浏览器兼容列表。
这点主要是因为测试会主动去切换,认定这是一个bug,其实大多数用户都不会去手动切换的。

更多了解

360浏览器是一款基于Chromium内核的浏览器,与Google Chrome浏览器在很多方面是兼容的。然而,由于不同浏览器之间的实现细节和特性支持可能存在差异,因此在编写网页代码时,有时需要针对360浏览器进行特定的兼容性处理。 以下是一些常见的360浏览器兼容性问题及其解决方案: 1. **CSS样式兼容性**: - 某些CSS属性或值可能在360浏览器中表现不一致。例如,某些高级的CSS效果(如`filter`、`transform`等)可能需要添加前缀以确保在所有浏览器中都能正确显示。 ```css /* 示例 */ .example { -webkit-transform: rotate(45deg); /* 针对Webkit内核的浏览器 */ transform: rotate(45deg); /* 标准写法 */ } ``` 2. **JavaScript兼容性**: - 某些JavaScript API或方法可能在360浏览器中不可用或表现不同。可以使用特性检测(feature detection)来确保代码在不同浏览器中的兼容性。 ```javascript // 示例:检查是否支持某个API if ('geolocation' in navigator) { navigator.geolocation.getCurrentPosition(function(position) { console.log(position); }); } else { console.log('Geolocation is not supported by this browser.'); } ``` 3. **HTML5标签兼容性**: - 虽然360浏览器基于Chromium内核,但某些较新的HTML5标签或属性可能不被完全支持。可以使用Polyfills或回退方案来处理这些情况。 ```html <!-- 示例:使用Polyfill引入不支持的HTML5元素 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> ``` 4. **特定功能的支持**: - 某些特定功能(如WebRTC、Service Workers等)可能在360浏览器中不完全支持。可以通过条件判断来处理这些情况。 ```javascript // 示例:检查Service Worker支持 if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js').then(function(registration) { console.log('Service Worker registered with scope:', registration.scope); }).catch(function(error) { console.log('Service Worker registration failed:', error); }); } else { console.log('Service Worker is not supported by this browser.'); } ``` 5. **调试工具**: - 使用开发者工具(F12)来调试和测试网页在不同浏览器中的表现。360浏览器的开发者工具与Chrome类似,可以帮助你快速定位和解决问题。 通过以上方法,可以有效地提高网页在360浏览器中的兼容性。当然,最好的方式是在开发过程中不断测试,确保网页在各种浏览器中都能正常显示和运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值