首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iframe的onload事件中加载Ajax

在iframe的onload事件中加载Ajax
EN

Stack Overflow用户
提问于 2013-03-27 21:35:56
回答 1查看 1.2K关注 0票数 0

我正在尝试在iframe中的onload事件上加载一个Ajax页面(如果可能?)。

所以我有一个iframe:

代码语言:javascript
复制
<iframe onload="loadIjax('ipage','./page.php');"> <div id="ipage"></div> </iframe>

和Javascript

代码语言:javascript
复制
function loadIjax(divId,strURL)
 {

 if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
  // show ajax response
  parent.document.getElementById(divID).innerHTML=xmlhttp.responseText;
  }
 }
 xmlhttp.open("GET",strURL,true);
 xmlhttp.send();
 }

因此,我们的想法是在页面加载时在iframe中加载page.php。

我的问题是,到目前为止,这是可能的吗?它在这一点上不起作用。问题是Javascript在iframe中找不到div。如果我将相同的div放在iframe之外,它确实可以工作。

EN

Stack Overflow用户

发布于 2013-03-27 21:40:31

将HTML放在iframe标记内不起任何作用。这是错误的HTML。

Iframes在其中包含一个完整的页面。这意味着他们有自己的windowdocument。因此,当您调用document.getElementById时,您是在父窗口中执行此操作,而不是在iframe内。您需要做的是在iframe中查找元素,遍历其文档。您可以通过访问iframe的contentWindow属性来完成此操作:

代码语言:javascript
复制
var iframe = document.getElementById('myIframeId');
iframe.contentWindow.document.getElementById('containerId').innerHTML = 'foo';
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15660202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档