我有一个带有iframe的html文档。母文档和iframe中的文档(wordpress博客)位于同一个域中。 iframe的自动调整负载事件高度以适合其内容是这样的:如何在所有jQuery ajax请求完成后调整iframe
<iframe width="100%" height="100%" id="parent-iframe" name="parent-iframe" src="/blog" scrolling="no" onload="this.height=this.contentWindow.document.body.scrollHeight"></iframe>
它工作正常。但是现在,大多数页面上都有一个Facebook feed的博客已经更新为“加载更多”按钮,以限制显示的帖子数量。就像一个无限的滚动,但有一个按钮。
我想要的是能够调整在“加载更多”按钮,单击父iframe中。由于facebook feed是由wordpress插件提供的,并且它随时都会更新,所以我宁愿不直接混淆它的文件。此外,javascript代码被缩小,所以对我来说看起来很乱。
幸运的是,它也提供了一个后台文本框,包括自定义代码。由于jQuery已经加载,我试过这个:
jQuery(document).ready(function() {
jQuery("load-more").click(function() {
var frame = $('#parent-iframe', window.parent.document);
var height = jQuery('body').height();
frame.height(height);
});
});
它按预期工作,但有一个警告。无论何时点击事件被触发,该函数在新帖子被加载之前执行,因此身高总是落后一步。我可以添加固定数量的像素 进行补偿,但某些帖子比其他帖子大得多。
我没有做这方面的工作很多时候,所以我需要帮助。我在看jQuery推迟的对象,但老实说我有点失落。有人可以简单地向我解释它是如何工作的以及如何解决它?
我不知道你想要的这里..你想要执行上面的工作代码,但延迟? – mjw
我不知道这是否会有所帮助,但这已经存在:https://github.com/davidjbradshaw/iframe-resizer – mkaatman
@mjw不是本身,而是在“加载更多”按钮的功能,而之后连续的延迟是完成。 – Guillem