javascript - jQuery .ready 在动态插入的 iframe 中

标签 javascript jquery iframe thickbox galleria

我们正在使用 jQuery thickbox当有人点击图片时动态显示 iframe。在这个 iframe 中,我们使用 galleria用于显示多张图片的 javascript 库。

问题似乎是 iframe 中的 $(document).ready 似乎被触发得太快了,甚至还没有加载 iframe 内容,所以 Galleria 代码没有正确应用DOM 元素。 $(document).ready 似乎使用 iframe 父就绪状态来决定 iframe 是否就绪。

如果我们将 document ready 调用的函数提取到一个单独的函数中,并在 100 毫秒超时后调用它。它可以工作,但我们不能在生产速度慢的计算机上冒险。

$(document).ready(function() { setTimeout(ApplyGalleria, 100); });

我的问题:我们应该绑定(bind)哪个 jQuery 事件才能在动态 iframe 准备好时执行我们的代码,而不仅仅是它的父级?

最佳答案

我回答了一个类似的问题(见 Javascript callback when IFRAME is finished loading?)。 您可以通过以下代码获得对 iframe 加载事件的控制:

function callIframe(url, callback) {
    $(document.body).append('<IFRAME id="myId" ...>');
    $('iframe#myId').attr('src', url);

    $('iframe#myId').load(function() {
        callback(this);
    });
}

在处理 iframe 时,我发现使用加载事件而不是文档就绪事件已经足够好了。

关于javascript - jQuery .ready 在动态插入的 iframe 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205087/

相关文章:

javascript - 防止 Html Agility Pack 更改加载的页面源

javascript - 为什么 jquery UI Widgets 在我的 Laravel 应用程序中不起作用?

html - 仅当至少选中一个复选框时才使用外部提交按钮提交表单

html - Facebook 如何阻止您将网站放入 iFrame?

javascript - 删除 chart.js 中的 x 轴标签/文本

javascript - 如何为一堆静态文件创建纯浏览器/javascript 搜索引擎?

javascript - 使用 html5 FileReader 访问本地文件

javascript - 有两个表单不是使用 javascript 提交的

javascript - 从父级访问 iframe 变量 - 未定义

javascript - 代码可以在 Dreamweaver cs6 中运行,但不能在 chrome/firefox 中运行。?