H5页面在iOS Safari上点击事件没反应怎么办?
我最近在开发一个移动端H5页面,用的是React。在安卓和桌面浏览器上都正常,但在iOS的Safari里,按钮点击完全没反应,连onClick都不触发,特别奇怪。
我试过加cursor:pointer、用touchstart代替click,也检查了有没有层叠遮挡,但都没用。代码很简单,就是个普通按钮:
const MyButton = () => {
const handleClick = () => {
console.log('clicked!');
alert('Hello');
};
return (
<button onClick={handleClick} style={{ padding: '10px' }}>
点我试试
</button>
);
};
是不是iOS对某些事件有特殊限制?或者我漏了什么meta标签?
或者更简单,在你的组件style里直接加:
touch-action: manipulation告诉浏览器这个元素只会tap不会滚动,iOS就不会等300ms判断是点击还是滚动,click事件就正常触发了。