如何禁用点击但仍然允许在iframe中滚动?

use*_*256 6 html javascript css iframe jquery

我在固定高度的面板上的页面上显示了一个iframe,但是在iframe中呈现的页面要大得多。我不希望用户能够在iframe中单击任何内容。我知道一般的解决方案是在iframe顶部设置一个不可见的div来禁用所有交互。但是,这也会禁用滚动功能。是否可以捕获和忽略iframe页面上的任何点击,但仍然允许滚动传播?

小智 14

如果您不希望用户可以与 iframe 的内容进行交互,则可以禁用其上的指针事件。但是,如果您希望它可以滚动,只需将一个完整大小的 iframe 放在一个较小的 div 中,并带有溢出:滚动。

div {
  width: 50vw;
  height: 50vh;
  overflow: scroll;
}

iframe {
  width: 100vw;
  height: 100vh;
  pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <iframe src="http://example.com"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这里的问题是 iframe 可以是任意高度,因此“全尺寸”iframe 没有价值。我可以将 iframe 设置得过大,但这只会在底部留下很多看起来很糟糕的空白空间。 (12认同)