14 javascript windows jquery google-chrome chromium
当前的Google Chrome稳定版本已停止手动阻止缩放缩放,这在旧版本中可能具有以下设置:
chrome://flags/#enable-pinch
Run Code Online (Sandbox Code Playgroud)
我从一些随机的缩放/多点触控输入中获取攻击.
如何告诉JavaScript禁用缩放缩放/多点触控?(保护亭子)
我试过跟随,但没有什么能阻止信息亭忽略捏缩放攻击.
$(document).ready(function() {
$(document).bind('contextmenu', function() {
console.log('NO NO NO. STOP!!!');
window.location.reload();
return false;
});
$(document).mousedown( function() {
console.log('NO NO NO. STOP!!!');
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
编辑:
chrome://flags/#enable-pinch
- 从未在Google Chrome中使用过.谷歌不应该删除它,社区应该抗议不删除它.
小智 24
我不知道这是否算作完整答案,但我没有代表发表评论.一种选择是为触摸事件设置处理程序
window.addEventListener("touchstart", touchHandler, false);
,然后编写touchHandler函数
function touchHandler(event){
if(event.touches.length > 1){
//the event is multi-touch
//you can then prevent the behavior
event.preventDefault()
}
}
Run Code Online (Sandbox Code Playgroud)
以下是有关使用触摸事件进行开发的更多信息 https://mobiforge.com/design-development/html5-mobile-web-touch-events 您必须为其他触摸事件设置处理程序以防止默认的缩放缩放行为取决于浏览器.列表可以在这里找到:http://www.quirksmode.org/mobile/default.html
我不知道这对你有用,但值得一试.
这是防止在 Chrome 中缩放的方法:
document.addEventListener("touchstart", function(e){
e.preventDefault();
},{passive: false});
Run Code Online (Sandbox Code Playgroud)
也许除了某些元素
document.getElementById('someelement').addEventListener('touchstart', function(e){e.stopPropagation()}, false);
Run Code Online (Sandbox Code Playgroud)
通过将此meta标签添加到您的中,您应该能够防止用户放大<head>
:
<meta name="viewport" content="width=device-width, user-scalable=no">
Run Code Online (Sandbox Code Playgroud)
Version 51.0.2704.84 (64-bit)
当我使用开发人员工具中的触摸仿真对其进行测试时,我的Google Chrome版本会尊重此设置。
例如:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, user-scalable=no">
我要评论的是,允许您的用户放大和缩小不应被视为“攻击”。放大对于视力不好的人(或视力障碍者,我不确定正确和礼貌的英语术语是什么)非常重要。
如果禁用自然缩放行为,则应对网页的可读性承担全部责任。