找回密码
 加入
搜索
查看: 12823|回复: 4

[IE类操作] 关于IE网页加载的问题

[复制链接]
发表于 2013-9-10 15:35:41 | 显示全部楼层 |阅读模式
<div id="here">内容</div>

网页很大,加载很慢,比如淘宝,网易,腾讯。

只想要其中的一部分内容,能不能判断当网页对象ID为here,已经加载进来完毕后就停止加载,因为想要得到到已经加载进来了,执行$oIE.Stop(),省去后面那些无用的内容载入。

在论坛里找到函数,修改完貌似没什么效果,还是要加载完。

#include <IE.au3>

$oIE = _IECreateEmbedded()
$Form = GUICreate("测试", 600, 600)
GUICtrlCreateObj($oIE, 0, 0, 600, 600)
GUISetState()
_IENavigate($oIE, "http://www.taobao.com/", 0)
$oEle = _IEWaitEle($oIE, "q")
$oEle.value = "你好"

Do
Until GUIGetMsg() = -3

Func _IEWaitEle(ByRef $o_object, $o_id, $complete = false, $timeout = 300000) ;_IEWaitEle(IE对象,元素id或name,是否等待加载完成,超时值)
        If Not IsObj($o_object) Then
                __IEErrorNotify("Error", "_IEPropertyGet", "$_IEStatus_InvalidDataType")
                Return SetError($_IEStatus_InvalidDataType, 1, 0)
        EndIf
        If Not __IEIsObjType($o_object, "browserdom") Then
                __IEErrorNotify("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
                Return SetError($_IEStatus_InvalidObjectType, 1, 0)
        EndIf
        Local $o_Init = TimerInit()
        While TimerDiff($o_Init) < $timeout
                $o_doc = _IEDocGetObj($o_object)
                If IsObj($o_doc) Then
                        $o_Ele = _IEGetObjById($o_object, $o_id)
                        If Not IsObj($o_Ele) Then $o_Ele = _IEGetObjByName($o_object, $o_id)
                        
                        If IsObj($o_Ele) And ((Not $complete) Or ($o_Ele.readyState == 'loaded' Or $o_Ele.readyState == 'complete')) Then
                                                                $o_object.Stop()
                                Return $o_Ele
                                                        EndIf
                EndIf
                Sleep(100)
        WEnd
        Return SetError(0, 0, 0)
EndFunc
 楼主| 发表于 2013-9-10 18:30:48 | 显示全部楼层
表面死气沉沉,但实际上暗流涌动啊?!这么多人在线看帖,100、200次浏览,咋就没有回复的呢?
发表于 2013-9-16 17:45:05 | 显示全部楼层
这个问题非常有建设性
我喜欢!

_IEAction($o_object, "stop")
这个不行吗?

评分

参与人数 1金钱 +10 收起 理由
zhybxyz + 10

查看全部评分

 楼主| 发表于 2013-9-17 20:48:30 | 显示全部楼层
行是行,如何判断自己想要的部分已经加载进来,DOM已经创建?还是进度到50%?还是……?
发表于 2013-9-18 12:44:10 | 显示全部楼层
读取网页源码是比较快的,你可以根据源码自己显示网页内容

评分

参与人数 1金钱 +10 收起 理由
zhybxyz + 10

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-4 11:25 , Processed in 0.075563 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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