Javascript 在firefox中禁用MouseEnter iframe上的主窗口滚动

Javascript 在firefox中禁用MouseEnter iframe上的主窗口滚动,javascript,html,firefox,iframe,scroll,Javascript,Html,Firefox,Iframe,Scroll,我想在主页面上禁用滚动,但当鼠标悬停在iframe上时,不能在iframe内禁用滚动。 你可以更清楚地理解我的意思 如果iframe正在拾取mousewheel事件,那么当鼠标位于iframe内时,我不希望整个页面向下滚动。请注意,它在chrome中工作,而不是在ff中 编辑:键盘组件甚至可以按预期工作 注: 滚动启用/禁用基于代码更简单的解决方案: 为父实体指定一个id(“bodyID”,然后在启用和禁用滚动功能中添加: function disable_scroll() { docu

我想在主页面上禁用滚动,但当鼠标悬停在iframe上时,不能在iframe内禁用滚动。 你可以更清楚地理解我的意思

如果iframe正在拾取mousewheel事件,那么当鼠标位于iframe内时,我不希望整个页面向下滚动。请注意,它在chrome中工作,而不是在ff中

编辑:键盘组件甚至可以按预期工作

注:


滚动启用/禁用基于代码

更简单的解决方案:

为父实体指定一个id(
“bodyID”
,然后在启用和禁用滚动功能中添加:

function disable_scroll()
{
    document.getElementById("bodyID").style.overflow="hidden";
}

function enable_scroll()
{
    document.getElementById("bodyID").style.overflow="auto";
}
基本上,因为您不希望父页面滚动,而不是针对单个事件,所以当光标位于
iframe
内时,只需完全禁用父页面的滚动。简单,跨浏览器,更直接

事实上,您可以删除90%的代码,只需使用

function disable_scroll()
{
    document.getElementById("bodyID").style.overflow="hidden";
}

function enable_scroll()
{
    document.getElementById("bodyID").style.overflow="auto";
}
document.getElementById("miframe").onmouseenter = disable_scroll;
document.getElementById("miframe").onmouseleave = enable_scroll;
您可以使用
document.body
,但是当您使用JSBin或类似的工具时,会出现混乱,有六个(好的,三个,但仍然是)
文档和
body


检查修改后的JSBIN。

很好!我没想到!我总是选择一个更简单的解决方案。不过,我还是想知道为什么其他解决方案在ff中不起作用。老实说,我也是。我自己也有点好奇。