如何防止鼠标第四和第五按钮的默认行为(在浏览器历史记录中来回移动)?我想在浏览器游戏中使用这些按钮来移动相机。
答案 0 :(得分:0)
我最近想为CubicleSoft File Explorer做这件事。为了完成任务,使用浏览器历史记录设置了三个新的“ popstate”:“后退”,“主要”,“前进”。使用鼠标上的后退或前进按钮可以触发popstate处理程序,该处理程序会将历史记录重置为“ Main”状态。
// Capture browser-level back/forward buttons. Alters browser history.
var CapturePopStateHandler = function(e) {
if (e.state && e.state._fileexplorer)
{
if (e.state._fileexplorer === 'back')
{
window.history.forward();
}
else if (e.state._fileexplorer === 'forward')
{
window.history.back();
}
}
};
// Sets up three history items and places the user in the middle of those three.
window.history.pushState({ _fileexplorer: 'back' }, document.title);
window.history.pushState({ _fileexplorer: 'main' }, document.title);
window.history.pushState({ _fileexplorer: 'forward' }, document.title);
window.history.back();
window.addEventListener('popstate', CapturePopStateHandler, true);
不利之处在于,除非使用长按后退按钮选项,否则用户现在会停留在页面上。但是可以肯定捕获了硬件后退/前进硬件鼠标按钮(Alt +左/右箭头键组合也是如此)。理想情况下,每当不再需要捕获状态时,都将其撤消。