在一个基于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()避免这个问题。