【发布时间】:2014-12-20 14:33:08
【问题描述】:
我有一个带有 iframe 的页面。这两个站点(父站点是 php,子站点是 asp.net 2.0)位于不同的域上,尽管我控制它们。大部分工作都是在 iframe 内完成的。我正在使用 postMessage 函数发送有关 iframe 中内容的总高度的信息。但是,它总是显示为 0,我猜是因为脚本在所有内容都显示在屏幕上之前执行。有没有办法获得子站点的总高度(我认为是 scrollHeight,对吗?),以便我可以将其发送给父站点?
谢谢!
【问题讨论】:
-
那篇文章实际上让我开始了解这一切。但问题是我只在 iframe 中工作,在 iframe 中从一个页面移动到另一个页面。从父框架发送一条询问 iframe 大小的消息仅适用于包含 iframe 的页面的初始加载,除非我每次转到 iframe 中的另一个页面时都要求父框架刷新(我会而不是这样做)。
-
所以你想听来自 iframe 的事件.. 有一个技巧。我把它写成答案,因为它太大了,无法评论
-
我已经在父框架上有了一个监听器,我收到了消息。我的问题是 iframe 发送的值为 0。
-
嗯。你确定你从触发器传递了正确的高度吗?像这样的'parent.$(parent.document).trigger("atriggerMessage", document.body.clientHeight);'那么你可以提取所需的高度并使用它......如果这也失败了,尝试制作一个 jsfiddle 会更容易调试
标签: javascript html asp.net iframe postmessage