手机会震动,应该正是“脚本实现的欺骗性广告”[1],是因为网页的脚本在调用navigator.vibrate方法。我做过一个演示网页,它就是借助这个方法震动的:
<inputtype="number"value="114.514"placeholder="震动时间(ms)"oninput="window.duration = this.value"/><buttononclick="navigator.vibrate(window.duration);">震动</button><script>duration=114.514;if(!('vibrate'innavigator))//有的浏览器有私有前缀navigator.vibrate=navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate||alert(`亲,您的浏览器我伺候不起`);</script>
你可以在一些在线HTML测试网站测试这段代码,相信你可以感受到手机的震动。
要中断无良网页的震动,可以用代码硬杠:
setInterval(()=>navigator.vibrate(0));
或者参考其它回答的方法,毕竟这个回答不针对如何避免这种网页。
参考^https://www.zhihu.com/question/310479539/answer/1145391366