1、苹果手机IOS系统 new Date(YYYY-MM-DD) 会报错
将 YYYY-MM-DD 换成 YYYY/MM/DD 格式
建议重写 Date() 函数
try {
console.log('HTML say: 进入重写 Date 函数逻辑')
// 修改Date
function myDate() {
const OldDate = Date
Date = function () {
if (
arguments.length > 0 &&
typeof arguments[0] === 'string' &&
arguments[0].includes('-')
) {
const p = arguments[0].replace(/-/g, '/')
arguments[0] = p
}
return new OldDate(...arguments)
}
Date.prototype = OldDate.prototype
const oldDateStaticParam = Object.getOwnPropertyNames(OldDate)
const dateStaticParam = Object.getOwnPropertyNames(Date)
const diffParam = []
for (let i = 0; i < oldDateStaticParam.length; i++) {
let find = false
for (let j = 0; j < dateStaticParam.length; j++) {
if (oldDateStaticParam[i] === dateStaticParam[j]) {
find = true
break
}
}
if (!find) {
diffParam.push(oldDateStaticParam[i])
}
}
for (let i = 0; i < diffParam.length; i++) {
Date[diffParam[i]] = OldDate[diffParam[i]]
}
}
// ----
if (
navigator.userAgent.includes('iPhone') ||
navigator.userAgent.includes('iPad')
) {
myDate() // 兼容该死的 IOS
}
} catch (error) {
console('HTML say: 重写 Date 函数逻辑运行出错', error)
}
2、安卓机 弹起键盘 会压缩屏幕高度
根dom元素高度 不要用 100% ; js获取设备高度使用px设置页面高度;
document.body.querySelector("#main").style.height = window.innerHeight + "px";
3、sort排序在不同设备结果不一致问题
在使用sort排序时,若遇到相同数据或非数值数据时,可能会出现不同手机排序不一致问题
建议 sort((a,b)=>{return a===b? 0 : a>b ? -1 : 1}) 把相等情况返回0的情况也写出来; 还不行的话,就手写排序逻辑吧
ing ……