等待iframe加载JavaScript

Bil*_*wes 31 javascript iframe dom javascript-events

我在JavaScript中打开iframe:

righttop.location = "timesheet_notes.php";
Run Code Online (Sandbox Code Playgroud)

然后想要传递信息:

righttop.document.notesform.ID_client.value = Client;
Run Code Online (Sandbox Code Playgroud)

显然,在页面完全加载到iframe之前,该行不会起作用,并且该表单元素将被写入.

那么,解决这个问题的最佳/最有效方法是什么?某种超时循环?理想情况下,我真的希望将它全部保存在这个特定的脚本中,而不是必须向正在打开的页面添加任何额外的东西.

Cre*_*esh 56

首先,我认为你应该影响srciframe 的属性,而不是location.其次,挂钩iframe的load事件来执行更改:

var myIframe = document.getElementById('righttop');
myIframe.addEventListener("load", function() {
  this.contentWindow.document.notesform.ID_client.value = Client;
});
myIframe.src = 'timesheet_notes.php';
Run Code Online (Sandbox Code Playgroud)

再一次,这都是假设你的意思是我的框架,而不是框架集.


raj*_*lai 6

我想你可以很容易地用jQuery做到这一点... jQuery Home 只需将页面挂钩到jQuery $ function ()...例如

$(document).ready(function() { 
$('iframe').load(function() { 
   // write your code here....
}
Run Code Online (Sandbox Code Playgroud)

快速浏览文件上传器示例: 使用iframe进行多个文件上传...

  • 我并不是真的想进入 jquery(还没有打开那扇门),我只是希望用几行优雅的 javascript 来处理它。但无论如何感谢拉杰什! (2认同)