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 许可协议

阅读 608
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题