为了账号安全,请及时绑定邮箱和手机立即绑定

当iframe完成加载时JavaScript回调?

当iframe完成加载时JavaScript回调?

HUWWW 2019-07-20 09:28:55
当iframe完成加载时JavaScript回调?当iframe完成加载时,我需要执行回调。我无法控制iframe中的内容,所以我不能从那里启动回调。这个iframe是编程创建的,我需要将其数据作为回调中的变量传递,并销毁iframe。有什么想法吗?编辑:我现在拥有的是:function xssRequest(url, callback){     var iFrameObj = document.createElement('IFRAME');     iFrameObj.src = url;                 document.body.appendChild(iFrameObj);        $(iFrameObj).load(function()      {         document.body.removeChild(iFrameObj);         callback(iFrameObj.innerHTML);     });}此回调在iframe加载之前进行,因此回调不返回数据。
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

首先,使用函数名xssRequest听起来你在尝试跨站点请求-如果是这样的话,你将无法读取iframe的内容。

另一方面,如果iframe的URL在您的域中,您可以访问主体,但是我发现,如果我使用超时来删除iframe,回调可以正常工作:

// possibly excessive use of jQuery - but I've got a live working example in production$('#myUniqueID').load(function () {
  if (typeof callback == 'function') {
    callback($('body', this.contentWindow.document).html());
  }
  setTimeout(function () {$('#frameId').remove();}, 50);});


查看完整回答
反对 回复 2019-07-20
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

我使用的是jQuery,令人惊讶的是,这似乎是加载的,因为我刚刚测试并加载了一个沉重的页面,直到我看到iframe加载时才收到警报:

$('#the_iframe').load(function(){
    alert('loaded!');});

因此,如果您不想使用jQuery,看看它们的源代码,看看这个函数在iframe DOM元素中的行为是否不同,我将在稍后查看它。


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 2792 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信