electron c++ 禁止点击鼠标滚轮时浏览器进入滚动模式
要在 Electron 中禁用鼠标滚轮滚动,请使用以下代码:
// 获取当前窗口的 WebContents 对象
auto web_contents = browser_window->WebContents();
// 创建一个空的 JavaScript 对象
v8::Local<v8::Object> options = v8::Object::New(isolate);
// 设置 JavaScript 对象的 passive 属性为 true
options->Set(context, v8::String::NewFromUtf8(isolate, "passive"), v8::Boolean::New(isolate, true)).FromJust();
// 注册鼠标滚轮事件监听器,并将 JavaScript 对象作为参数传递
web_contents->SetZoomLevelLimits(1, 1);
web_contents->GetMainFrame()->ExecuteJavaScript(
"window.addEventListener('wheel', function(e) { e.preventDefault(); }, " +
"options);", base::string16());
这将在当前窗口的主框架中执行 JavaScript,以便在滚动事件发生时禁用默认行为。请注意,这将在整个窗口中禁用鼠标滚轮滚动,无论用户在哪个位置点击鼠标滚轮。如果您想要更精细的控制,您可以在 JavaScript 中检查事件的来源,并根据需要禁用滚动
原文地址: https://www.cveoy.top/t/topic/f4EV 著作权归作者所有。请勿转载和采集!