兼容(1)
于2023-11-13 08:58:54发布
50
new Date(“2015-01-01 00:00:00”) NaN
/*
在Safari IOS 上使用(new Date('2015-01-01 00:00:00')) .getTime() 返回NaN,
原因就是不兼容;解决办法 将字符串的‘-’替换成‘/’
*/
'2015-01-01 00:00:00'.replace(/-/g,'/')
关于部分ios不执行deviceorientation事件的bug
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<script type="text/javascript">
var a = 0;
window.addEventListener('deviceorientation', function(){
a++;
document.title = a;
}, false);
</script>
</body>
</html>
/*
很简单的一段代码,但是部分ios机型却不执行。研究几个小时后,发现是如果ios的系统版本是12.2以下的就没问题。可以执行该事件。
但是12.2以上的,则需要在https的域名下才能执行改事件。原因是新系统版本晃动事件需要https协议
*/
replaceAll替代方法
replace(/,/g, ' ')
IOS 系统下 filter: drop-shadow()渲染显示异常怎么办?
异常如下:用drop-shadow设置投影在IOS上会出现,刚开始加载的时候阴影没有展示,过一会又展示出来了的问题。
解决方案:
加上transform: translateZ(0)开启3d模式,可以解决不显示、显示不全等问题。
移动端页面,用了touch 事件,元素内的 a 标签无法点击
在touchstart里先判断一下,如果是点的是a标签就不执行滚动
if (e.target.tagName === 'a')return;
解决IOS返回上一页,页面不刷新,js不执行的问题
// 兼容苹果跳转回退不刷新页面
var browserRule = /^.*((iPhone)|(iPad)|(Safari))+.*$/;
if (browserRule.test(navigator.userAgent)) {
window.onpageshow = function(event) {
if(event.persisted) {
window.location.reload()
}
};
}
tips:不要放到window.onload或者document.ready里面执行,否则没用