发新贴  快速回复

哪位帮助看下这个jquery 操作iframe的问题,老是获取不到

攻城师Mr.严
2014-12-26 14:40
http://q.cnblogs.com/q/68685/
无为
要等页面加载完成之后才能获取,在 iframe 的onload 事件里面去获取。。。
2014-12-26 16:04  回复本帖
攻城师Mr.严
forum.php?mod=redirect&goto=findpost&pid=34275&ptid=11167
要等页面加载完成之后才能获取,在 iframe 的err= 事件里面去获取。。。

  我是在父级上去操作的,还要跑到子页面去处理吗???
  你说的去err=里获取我不太懂???
2014-12-26 17:02  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34279&ptid=11167
我是在父级上去操作的,还要跑到子页面去处理吗???
  你说的去err=里获取我不太懂???
 ...

iframe 标签也是有err= 事件的,不是只有body标签才有,很多标签都有onload事件,比如 img 。。
iframe 就相当于是一个新的窗口,它加载内容是需要时间的,这个时间长短受内容多少影响,并不固定,所以你固定地设置一个延迟定时器肯定是不靠谱的。iframe 页面加载完成,会触发标签的onload 的事件,就像当前窗口的内容加载完成会触发body的onload事件一样。
2014-12-26 17:21  回复本帖
攻城师Mr.严
forum.php?mod=redirect&goto=findpost&pid=34280&ptid=11167
iframe 标签也是有err= 事件的,不是只有body标签才有,很多标签都有onload事件,比如 img 。。
iframe ...

   嗯你的意思我明天 了,那我要去怎么取err=完的内容,是写
  document.getElementById('iframe').contentWindow.document.onload=function(){这里写要取的内容}
2014-12-26 17:43  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34285&ptid=11167
嗯你的意思我明天 了,那我要去怎么取err=完的内容,是写
  document.getElementById('iframe').con ...

document.getElementById('iframe').err= = function(){};

是iframe标签本身的 err= 事件,不是里面...
2014-12-26 21:01  回复本帖
攻城师Mr.严
forum.php?mod=redirect&goto=findpost&pid=34290&ptid=11167
document.getElementById('iframe').err= = function(){};

是iframe标签本身的 err= 事件,不是里面 ...

    document.getElementById('iframe').err==function(){} 没有这个事件,会报错
   能不有帮我改下{:soso_e154:}
  http://jsbin.com/begobugoho/1/edit?js,output

2014-12-27 16:45  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34298&ptid=11167
document.getElementById('iframe').err==function(){} 没有这个事件,会报错
   能不有帮我改下{: ...
都说了是 iframe 标签本身的 err= 的事件,不是子页面里的元素,你还是没理解我的意思!


你直接去获取子页面的document,且不说 document 对象有没有 err= 事件,你 iframe 页面都还没加载完成,怎么可能会获取到里面的 document 对象!

假设现在有两个页面  , a.html , b.html   ,在 a页面中用 iframe 引入 b 页面。

a.html 页面的 代码:
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  
<iframe src="index.html" frameborder="0" id="fm1"></iframe>

</body>
</html>

<script>

b.html 页面的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> hello world </title>
</head>

<body>

<div id="div1">我是iframe页面中的div</div>

</body>
</html>


把这两个页面放在服务器环境下的同一个目录下面测试可得出结果。。。

2014-12-27 17:15  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34298&ptid=11167
document.getElementById('iframe').err==function(){} 没有这个事件,会报错
   能不有帮我改下{: ...

如果你这样写报错了,那要么你是直接在本地测试的,没有放到服务器环境。要么你就是跨域了。 获取iframe页面的内容必须是在同域下,跨域是没有权限操作的。
2014-12-27 17:16  回复本帖
攻城师Mr.严
forum.php?mod=redirect&goto=findpost&pid=34300&ptid=11167
如果你这样写报错了,那要么你是直接在本地测试的,没有放到服务器环境。要么你就是跨域了。 获取iframe ...

     可以操作了,谢谢无为老师,现在我想在子页面的head放个script 引用
     document.getElementById('iframe').err==function(){
           var iframe=$(document.getElementById("iframe").contentWindow.document);
               $(iframe).find("head").append($("<script type='text/javascript' src='js/move.js'></script>"));  //这样写没反正能得到object ,但给他append就没反应了
              //$(iframe).body.html("sdfsdfds") 这样写也没问题可以修改到,但$(iframe).find("head").append却没有效 
     }
                                      
2014-12-27 20:56  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34304&ptid=11167
可以操作了,谢谢无为老师,现在我想在子页面的head放个script 引用
     document.getElementById( ...
是</script> 这个结束标签的问题, 字符串中的 / 要转义一下:
.append($("<script type='text/javascript' src='js/move.js'><\/script>"));
这样应该就没问题了。。
2014-12-27 23:34  回复本帖
攻城师Mr.严
forum.php?mod=redirect&goto=findpost&pid=34308&ptid=11167
是 这个结束标签的问题, 字符串中的 / 要转义一下:

这样应该就没问题了。。 ...

   不行也,好像这个append没反应的
2014-12-28 12:12  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=34320&ptid=11167
不行也,好像这个append没反应的

你这样写是完全没有问题的。。

话说你能把你所有的要求一次性说完整么。。


2014-12-28 22:42  回复本帖
 
创美易-miaov
forum.php?mod=redirect&goto=findpost&pid=34327&ptid=11167
你这样写是完全没有问题的。。

话说你能把你所有的要求一次性说完整么。。


嘿嘿~~我也是醉啦~~亮哥哥~
2014-12-29 10:41  回复本帖
攻城师Mr.严
 本帖最后由 攻城师Mr.严 于 2014-12-29 12:05 编辑 

    可以了谢谢无为大师
2014-12-29 11:51  回复本帖
登录 后才可以发表回复