找回密码
 加入
搜索
查看: 6296|回复: 11

怎么获取iFrame里表格的数据

[复制链接]
发表于 2008-12-1 15:30:00 | 显示全部楼层 |阅读模式
怎么获取iFrame里表格的数据$oIE = _IECreate ("http://192.168.1.11/TEST.ASP",0,1,1,0)    ==》用java编写调用了4个iFrame

$oFrame=_IEFrameGetObjByName ($oIE,"orderList")  ==》获取名为orderList的iFrame对象

$oTable = _IETableGetCollection ($oFrame,0)  ==》获取iFrame中的一个表格

$aTableData = _IETableWriteToArray ($oTable)  ==》将表格写入数组

以上测试未通过,不知道原因再哪,请大家赐教。

上面是以前有人问过的问题,但是得不到解决~~~我的问题和他相识,但是我页面里只有一个iframe,请问如何可以得到这个iframe里的table的数据
<iframe id="inner" src="question.html"></iframe>
而在question.html里有类似这样的表格~~~
<table>
<tr><td><span id="questionTitle">AAAAA</td></tr>
</table>

就是类似这样的结构 请问如何可以得到这个表格里面的数据~~~

[ 本帖最后由 kob 于 2008-12-3 15:24 编辑 ]
 楼主| 发表于 2008-12-1 15:37:55 | 显示全部楼层
我用过这样的方式得到iframe里的text
$oFrames = _IEFrameGetCollection ($oIE)
$iNumFrames = @extended
For $i = 0 to ($iNumFrames - 1)
    $oFrame = _IEFrameGetCollection ($oIE, $i)
        $text=_IEPropertyGet ($oFrame, "innertext")
        ToolTip($text)
        Sleep(1000)
Next

这样可以得到表格里所有的文本,但是我需要操作 id="questionTitle"的td里的文本,还有其他TD的文本,而innertext是一个整体,好像操作不了~~~而还有个很奇怪的就是,我用$oIFrame=_IEGetObjByID($oIE,"inner") 得不到这个iframe对象。。。
发表于 2008-12-1 15:41:36 | 显示全部楼层
获取源码用正则取得,或通过_IEGETOBJBYID()获得
 楼主| 发表于 2008-12-1 16:39:12 | 显示全部楼层
用_IEGETOBJBYID()可以取到原文件对象,但是对于iframe的question.html里的对象和数据都好像取不到。。。用正则取得就不懂如何做了。。。~~老大能讲详细点吗?
还有就是像这样
$oIE = _IECreate ("http://192.168.1.11/TEST.ASP",0,1,1,0)    ==》用java编写调用了4个iFrame

$oFrame=_IEFrameGetObjByName ($oIE,"orderList")  ==》获取名为orderList的iFrame对象

$oTable = _IETableGetCollection ($oFrame,0)  ==》获取iFrame中的一个表格

$aTableData = _IETableWriteToArray ($oTable)  ==》将表格写入数组
为什么就得到不到数据的?
发表于 2008-12-1 20:10:38 | 显示全部楼层
看了几次,终于还是没弄明白你想得到什么数据!
你不如是把源码贴出来,然后讲明白是想得到什么数据吧...
 楼主| 发表于 2008-12-1 22:32:26 | 显示全部楼层
就是例如我一个网页test.html的内容如下
<html>
   <body>
       <iframe src="question.html" id="inner"></iframe>
   </body>
</html>

而question.html的内容如下
<html>
      <body>
         <form action="" name="questionForm">
              <table ><tr>
                   <td>问题是</td><td ><span id="questionTitle>$questionTitle(这就是我需要得到的东西)</td>
                   </tr></table>
         </form>
     </body>
</html>

question.html是在test的iframe里显示的,但是我在操作test.html时,我需要得到的是question.html里面table里id=questionTtle的数据
如何得到~~~
发表于 2008-12-2 09:34:05 | 显示全部楼层

$VAR = stringregexp(_iedocreadhtml($oie), '(?<=id=questionTitle>).+(?=</td>)', 1, 1)
msgbox(0,'',$var[0])


[ 本帖最后由 liongodmien 于 2008-12-2 09:44 编辑 ]
 楼主| 发表于 2008-12-3 15:23:43 | 显示全部楼层
lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerText
发表于 2008-12-3 16:45:46 | 显示全部楼层
原帖由 kob 于 2008-12-3 15:23 发表
lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerT ...

你能用这个得到你想要的数据,表明你是相当的强了
发表于 2015-1-12 21:59:08 | 显示全部楼层
回复 8# kob


    亲,你的这些方法是com还是DOM?
发表于 2015-1-13 02:15:01 | 显示全部楼层
本帖最后由 dhlhmgc 于 2015-1-13 02:21 编辑
#cs
问题
怎么获取iFrame里表格的数据
; -----------------------main.html-----------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
        <title>Untitled</title>
</head>
<body>
        Hello World!
        <hr>
    <iframe src="question.html" id="inner"></iframe>
</body>
</html>
; -----------------------question.html-----------------------------
<html>
    <body>
        <form action="" name="questionForm">
            <table>
                <tr>
                    <td>
                        问题是
                    </td>
                    <td>
                        <span id="questionTitle">
                            $questionTitle(这就是我需要得到的东西)
                        </span>
                    </td>
                </tr>
            </table>
        </form>
    </body>

</html>
#ce

; *******************************************************
; 示例 获取iFrame里表格的数据
; *******************************************************

#include <IE.au3>
#include <Array.au3>
dim $customIE_Wait = 150

Local $oIE = _IEAttach("Untitled")
if @Error Then
        Local $oIE = _IECreate (@ScriptDir & "\main.html")
Endif
_IELoadWait( $oIE, $customIE_Wait )
;//        $strURL  = _IEPropertyGet ($oFrame,"locationurl")
;//        $strHTML = _IEDocReadHTML ($oFrame)
;//        $strTEXT = _IEBodyReadText($oFrame)

dim $oFrame = _IEFrameGetCollection($oIE,0)                                ;0或正整数  -1返回集合,这里用第0个框架对象
dim $oFrameTab = _IETableGetCollection ( $oFrame, 0 )        ;0或正整数  -1返回集合,这里用第0个表格对象
;$strTEXT = _IEPropertyGet($oFrameTab,"innertext")                ;取表格内的文本
;msgbox( 48, 0, $strTEXT)
$arr = _IETableWriteToArray ( $oFrameTab, False )                ;取数组1
_ArrayDisplay($arr)

$arr = _IETableWriteToArray ( $oFrameTab, True )                ;取数组2
_ArrayDisplay($arr)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-10-4 09:43:35 | 显示全部楼层
回复 11# dhlhmgc

    中秋快乐 分享快乐
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 11:24 , Processed in 0.079551 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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