关于取iframe对象得问题

dawn06 2007-07-02 01:24:20
var o = document.createElement("<iframe id='addNodeFrame'/>");
document.body.appendChild(o);
为什么alert(o.document.body.innerHTML)打印得是iframe对象parent页面的内容.

...全文
363 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawn06 2007-07-02
  • 打赏
  • 举报
回复
恩 已经发现问题,谢谢
加了这个应该会好点
try{
if(o.document.readyState=='complete'){
alert(o.contentWindow.document.body.innerHTML);
}else if(o.document) {
o.document.onreadystatechange = function () {
if(o.document.readyState=='complete'){
alert(o.document.readyState)
alert(o.contentWindow.document.body.innerHTML);
}
}
}
}catch(e){}
Apq001 2007-07-02
  • 打赏
  • 举报
回复
时间问题,o是一个iframe,它的内容还没打开,你就急着去读contentWindow,还跟着一大串在后面,当然有问题了。

o.contentWindow. ...这串一般用在iframe的onload事件中或以后。
dawn06 2007-07-02
  • 打赏
  • 举报
回复
谢谢Amwpfiqvy,不过我又发现个问题。代码:
<html>
<head>
<SCRIPT>
function fnNavigate()
{
var o = document.createElement("iframe");
document.body.appendChild(o);
for(i=0;i<document.all.length;i++){
if(document.all(i).tagName=="IFRAME"){
alert(document.all(i).contentWindow.document.body.innerHTML);
}
}
alert(o.contentWindow.document.body.innerHTML)
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="fnNavigate();">Navigate Frames</BUTTON>
<IFRAME SRC=""></IFRAME>
</BODY>
</HTML>
这样是对的,但是

for(i=0;i<document.all.length;i++){
if(document.all(i).tagName=="IFRAME"){
alert(document.all(i).contentWindow.document.body.innerHTML);
}
}
var o = document.createElement("iframe");
document.body.appendChild(o);
alert(o.contentWindow.document.body.innerHTML) 这么写就错了,不知是什么原因
Apq001 2007-07-02
  • 打赏
  • 举报
回复
晕死,好久不发帖,不会Check了,应该是o.contentWindow.document.body
rjzou2006 2007-07-02
  • 打赏
  • 举报
回复
是的
ie是这样的

o.innerHTML
Apq001 2007-07-02
  • 打赏
  • 举报
回复
Try:
var o = document.createElement("iframe");//这里这样写更保险
o.id = 'addNodeFrame';
document.body.appendChild(o);

alert(o.contentWindow.body.innerHTML)//主要问题在这里。

87,919

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧