我为我的网站编写了一个javascript代码,用于检测它是否在移动设备上的Opera Mini浏览器上运行.由于Opera Mini具有数据保存功能,因此启用它时有时无法正确加载站点,因此我想通过检测所使用的浏览器是否为Opera Mini来显示消息.
下面发布的代码适用于iOS上的Opera Mini,但它不适用于Android.任何建议使代码也适用于Android上的Opera Mini?
<script type="text/javascript">
function o(){
var isMobile = {
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
};
if( isMobile.Opera() ) alert('If you are using Opera Mini please disable Data Savings Mode to Have a pleasant browsing experience :)');
}
window.onload = o;
</script>Run Code Online (Sandbox Code Playgroud)
小智 5
从来没有听说过Opera Mini,但我确实谷歌了,发现了https://dev.opera.com/articles/opera-mini-and-javascript/.基本上,她正在使用用户代理字符串来确定它是否为opera mini
var isOperaMini = (navigator.userAgent.indexOf('Opera Mini') > -1);
Run Code Online (Sandbox Code Playgroud)
这与你的方法非常相似.
但是,她还建议您可以使用window对象来确定这一点."Opera Mini还包含一个operamini对象作为窗口对象的属性.要检查是否存在此对象,请使用以下代码."
var isOperaMini = Object.prototype.toString.call(window.operamini) === "[object OperaMini]"
Run Code Online (Sandbox Code Playgroud)
如果你仍然无法让它工作,我会提出另一种方法.通过尝试使用保存功能进行保存来解决此问题,如果失败,请使用您打算使用的任何后备保存功能.因此,只要它是opera mini,它就能够使用数据保存功能,但是当它不是opera mini时,它将使用替代功能.想想这里的尝试/捕获.当然,您也希望在检索保存的数据时考虑实现.