捕获嵌套在iFrame中的帧中的滚动事件

时间:2011-08-11 14:59:18

标签: javascript iframe

我有一个应用程序正在将外部文档的内容读入iFrame并将其显示给用户。为了使事情变得更复杂,我的iFrame中的内容包含一个框架集本身,我们的用户希望页面的高度随着内容的高度而扩展或收缩。基本上,他们不希望看到滚动条。当我在框架集中的每个页面加载时触发以下JavaScript函数时,这非常有效:

function resizeFrame() {
  var windowDoc = window.top.document
  var iframeCheck = null;
 // first, check to see if we can find a window.top.document
  if (windowDoc != null) {
    var iframeCheck = windowDoc.getElementById('docIframe');
  }
 // did we really find the iFrame?
  if (iframeCheck != null) {
   // clean out the iframe height to avoid appending every time
    iframeCheck.style.height = null;
    var scrollHeight = document.body.scrollHeight + 75;
    iframeCheck.style.height = scrollHeight + 'px'
  }
}

页面高度恰到好处,一切看起来都不错。问题是,如果用户将鼠标放在框架内并尝试使用鼠标滚轮滚动,则不会发生任何事情。我想要做的是必须在框架内的滚动事件中包含页面移动。我认为我需要做的是捕获滚动事件并将其传递给包含页面,但我无法弄清楚这一点。事实上,我在onScroll()中为帧内容添加了一个JavaScript警报,并且尽可能地滚动它,它永远不会触发。这几乎就像滚动事件完全无法访问一样。任何人都可以建议一种方法吗?

谢谢, 亚历

1 个答案:

答案 0 :(得分:1)

我确实找到了解决这个问题的方法。我无法挂钩滚动事件,但鼠标滚轮事件仍然很容易获得并很好地解决了问题。