佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 4353|回复: 6

如何使用JavaScript取得iframe 的内容?

[复制链接]
发表于 9-2-2007 08:37 PM | 显示全部楼层 |阅读模式
如何使用JavaScript取得iframe 的内容?

如:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  2. <html>
  3. <head>
  4.     <title>Untitled</title>
  5. </head>
  6. <SCRIPT language="JavaScript" type="text/JavaScript">
  7. function  isiFrameLoadComplete(iframename){
  8. //加载完毕,取得iframe内容
  9. //请问如何取得?
  10. var ihtml=iframename;
  11. }

  12. </SCRIPT>
  13. <body>
  14. <iframe id="openblog" onload="isiFrameLoadComplete(this);" width="500" height="400" scrolling="no" frameborder="0" ></iframe>
  15. <DIV id=State align=center></DIV>
  16. </body>
  17. </html>
复制代码
回复

使用道具 举报


ADVERTISEMENT

发表于 9-2-2007 09:19 PM | 显示全部楼层
function  isiFrameLoadComplete(iframename){
    var ihtml = iframename.document.documentElement.innerHTML; //iframename.document.getElementById("foo"); 提取DOM物件
}

[ 本帖最后由 苦瓜汤 于 9-2-2007 09:21 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 10-2-2007 08:17 AM | 显示全部楼层
原帖由 苦瓜汤 于 9-2-2007 09:19 PM 发表
function  isiFrameLoadComplete(iframename){
    var ihtml = iframename.document.documentElement.innerHTML; //iframename.document.getElementById("foo"; 提取DOM物件
}


不能

index.htm
  1. <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">

  2. <html>
  3. <head>
  4.     <title>Untitled</title>
  5. </head>
  6. <SCRIPT language="JavaScript" type="text/JavaScript">
  7. function  isiFrameLoadComplete(iframename){
  8.   //  ihtml = iframename.documentElement.innerHTML; //iframename.document.getElementById("foo"); 提取DOM物件
  9.     document.getElementById("State").innerHTML=iframename.document.getElementById("leagueCode");
  10. }
  11. function runfun(){

  12. }

  13. </SCRIPT>
  14. <body onload="runfun();">
  15. <iframe src='1.htm' id="openblog" onload="isiFrameLoadComplete(this);" width="500" height="400" scrolling="no" frameborder="0" ></iframe>
  16. <DIV id=State align=center></DIV>
  17. </body>
  18. </html>
复制代码


1.htm
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  2. <html>
  3. <head>
  4.     <title>Untitled</title>
  5. </head>

  6. <body>
  7. <div id='leagueCode'>
  8. Hello World!
  9. </div>
  10. </body>
  11. </html>
复制代码
回复

使用道具 举报

发表于 10-2-2007 01:40 PM | 显示全部楼层
1) 在iframe可以跑 onload 吗?
2) document.getElementById("State").innerHTML
   =iframename.document.getElementById("leagueCode");

   getElementById("leagueCode") 后应该还有东西吧?
回复

使用道具 举报

发表于 10-2-2007 06:33 PM | 显示全部楼层
对不起,漏了一个contentDocument。contentDocument是直接access iframe的window物件


  1. <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">

  2. <html>
  3. <head>
  4.     <title>Untitled</title>
  5. </head>
  6. <script language="JavaScript" type="text/JavaScript">
  7. function  isiFrameLoadComplete(iframename){
  8.       ihtml = iframename.contentDocument.documentElement.innerHTML;
  9.     document.getElementById("state").innerHTML=ihtml;
  10. }
  11. function runfun(){

  12. }

  13. </script>
  14. <body onload="runfun();">
  15. <iframe src='1.htm' id="openblog" onload="isiFrameLoadComplete(this);" width="500" height="400" scrolling="no" frameborder="0" ></iframe>
  16. <div id="state" align="center"></div>
  17. </body>
  18. </html>
复制代码

回复

使用道具 举报

发表于 11-2-2007 12:27 AM | 显示全部楼层
原帖由 苦瓜汤 于 10-2-2007 06:33 PM 发表
对不起,漏了一个contentDocument。contentDocument是直接access iframe的window物件


  1. <!DOCTYPE HTML PUBLIC
  2. "-//W3C//Dtd HTML 4.01 Transitional//EN"
  3. "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">



  4. <html>

  5. <head>

  6.     <title>Untitled</title>

  7. </head>

  8. <script language="JavaScript" type="text/JavaScript">

  9. function  isiFrameLoadComplete(iframename){

  10.       ihtml = iframename.contentDocument.documentElement.innerHTML;

  11.     document.getElementById("state").innerHTML=ihtml;

  12. }

  13. function runfun(){



  14. }



  15. </script>

  16. <body onload="runfun();">

  17. <iframe src='1.htm' id="openblog"
  18. onload="isiFrameLoadComplete(this);" width="500" height="400"
  19. scrolling="no" frameborder="0" ></iframe>

  20. <div id="state" align="center"></div>

  21. </body>

  22. </html>
复制代码
...


苦瓜里面的runfun()真得就只是为了fun而run的,哈哈哈!

还有,狼儿印象中IE很像没有支援contentDocument的,不过IE里面可以使用document.frames["name"]来解决啦!

以下是狼儿修改后的JS.
  1. <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">

  2. <html>
  3. <head>
  4.     <title>Untitled</title>
  5. </head>
  6. <script language="JavaScript" type="text/JavaScript">
  7. function  isiFrameLoadComplete(iframename){
  8.         if(document.getElementById(iframename).contentDocument){
  9.                 //Firefox
  10.                 ihtml = document.getElementById(iframename).contentDocument;
  11.         }else{
  12.                 // IE
  13.                 ihtml = document.frames[iframename].document;
  14.         }
  15.         document.getElementById("state").innerHTML=ihtml.documentElement.innerHTML;
  16. }
  17. </script>
  18. <body>
  19. <iframe src="1.html" id="openblog" onload="isiFrameLoadComplete(this.id);" width="500" height="400" scrolling="no" frameborder="0" ></iframe>
  20. <div id="state" align="center"></div>
  21. </body>
  22. </html>
复制代码
回复

使用道具 举报

Follow Us
发表于 14-2-2007 06:21 AM | 显示全部楼层
借这个楼来问一下。。
我有一面,里面有一个frame,id=frame1
然后那个frame里面有另一个frame,id=frame2
然后frame2里面有一个div
<div id="abc">xx</div>
然后我的script是在frame2里面的。。

firefox会把document当成是frame2
IE会把document当成是原本那面。。

我想读和改变它的innerhtml都不能哦。。
在IE里面拉。。
Object doesn't support this property or method

有什么办法吗?
谢谢啦。。

  1. function element(id){
  2.     try{
  3.         // IE
  4.         return document.frames["frame1"].document.frames["frame2"].document.getElementById(id);        
  5.     }catch(error){
  6.         try{
  7.             //Firefox
  8.             return document.getElementById("frame1").contentDocument.getElementById("frame2").contentDocument.getElementById(id);
  9.         }catch(error){
  10.             return document.getElementById(id);
  11.         }
  12.     }
  13. }

  14. a=element('abc').innerHTML
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-8-2025 02:10 AM , Processed in 0.114674 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表