javascript-如何检测 iframe 中的滚动事件?

新手上路,请多包涵

当我尝试使用 iframe 标签添加事件滚动时出现问题。通常,我使用带有 div 标签的滚动事件,效果很好。但是当我在 iframe 标签中添加滚动事件来检测用户滚动 pdf 页面时,它不起作用。为什么我不能访问 iframe 中的 html 元素?,我在下面检查了代码:

在此处输入图像描述

我尝试使用 iframe 添加 javascript 滚动事件:

HTML 代码:

 <iframe id="myframe" src="doc.pdf"></iframe>

JavaScript 代码:

 document.getElementById('myframe').onscroll = function(){
	 	alert('scrolling page');
};

原文由 DevScripts 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 609
1 个回答

An iframe does not have a scroll method, the document of the iframe does - you need to reference the inner document rather than your <iframe> 标签。

您可以使用 iframe.contentDocument 引用它:

 var iframe = document.getElementById('frame');

iframe.contentDocument.body.innerHTML = 'a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>';

iframe.contentDocument.addEventListener('scroll', function(event) {
  console.log(event);
}, false);
 <iframe id="frame"></iframe>

请参阅: https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement 了解更多信息

原文由 skyline3000 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题