在一个基于WinForm的混合开发项目中,使用了WebBrowser承载了全部的界面和交互。测试中发现Ctrl+鼠标滚轮会使页面缩放,这是不能容忍的。请教了百度后,在页面HTML中添加代码:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
测试无效。
另辟蹊径,用JS禁止Ctrol+鼠标滚轮操作,测试通过。
var ctrlPressed = false;
document.body.onkeydown = document.body.onkeyup = function (e) {
e = e || window.event;
ctrlPressed = e.ctrlKey;
};
document.body.onmousewheel = function (e) {
e = e || window.event;
if (ctrlPressed) {
if (document.addEventListener) e.preventDefault();
else window.event.returnValue = false;
}
};
另外,我发现在WebBrowser控件得到焦点前,滚轮缩放仍旧有效,需要在MainForm_Load中加上webBrowser.Focus()避免这个问题。
在WinForm项目中,使用WebBrowser控件时,发现Ctrl+鼠标滚轮会导致页面缩放。通过在HTML中添加viewport元标签未能解决。最终采用JS监听键盘和鼠标滚轮事件,成功阻止缩放,并在加载时聚焦WebBrowser控件。
662

被折叠的 条评论
为什么被折叠?



