JBOY1009 发表于 2011-11-26 14:35:29

如何改写_IECreate 让其加载完DOM后就执行后续动作

在用_IECreate创建对象的时候发现 它会等整个IE窗口加载完毕内容后才会执行后面的动作 (包括加载 图片 flash 等资源) 在网络不好的情况下浪费很多时间   有没有什么方法 可以类似 javascript 的 Jquery 里的 ready 方法一样 只要加载完毕 DOM就执行后续动作呢 不用等图片 和 flash 之类的!谢谢了

kevinch 发表于 2011-11-26 18:14:30

直接inetgetsource得了

JBOY1009 发表于 2011-11-26 20:24:24

回复 2# kevinch


    用这个函数获取到HTML源码后再怎么做能进行类似 _IECreate那样的模拟登陆呢 不会啊!

dddxxx 发表于 2011-11-26 20:33:13

直接死循环
像这个样
Do
        $user1 = _IEGetObjById($oIE, "u")
        Sleep(100)
Until IsObj($user1)
然后再执行后续操作

kevinch 发表于 2011-11-26 22:53:10

回复 3# JBOY1009
原来是要模拟登录啊,那用4楼的方法吧,我也是这样写的,速度还是相当快的,相当于手工操作时看到出现了可用对话框就开始输入

JBOY1009 发表于 2011-11-27 17:25:25

回复 4# dddxxx


    不知道为什么好像我用的不起作用啊   $oie _IECreate($url , 0,1,0,0) 好像报错参数改为0,1,1,0 的话 那不又是要等待IE加载页面完毕了嚒很头疼

xms77 发表于 2011-11-27 21:49:29

IE的东东还真的不懂,今天白天研究一下,还是迷迷糊糊的。

dddxxx 发表于 2011-11-28 10:35:19

回复 6# JBOY1009

报的什么错误呢??看看@error的返回值

JBOY1009 发表于 2011-11-28 14:30:27

回复 8# dddxxx


      Do
      $user1 = _IEGetObjById($oIE, "u")
      Sleep(100)
Until IsObj($user1)
这代码里的$oIE 是用_IECreate 创建的嚒参数是什么?其中有一个参数 $oIE_wait 不知道是怎么设置的默认为 1 等待IE加载完毕内容 我想设置为0直接返回然后自己在判断DOM 是否全部加载完毕 二不管 图片那些加载完毕没   
_IECreate 在用这个创建IE对象的时候 如果我不事先运行IE 也会报错的不知道为什么 必须要事先打开IE @error 为 1

dddxxx 发表于 2011-11-28 23:27:22

回复 9# JBOY1009

#include <ie.au3>
$user = "user"
$oIE = _IECreate("http://vip.xunlei.com/index.html?", 0, 1, 0)

Do
        $user1 = _IEGetObjById($oIE, "u")
        Sleep(100)
Until IsObj($user1)
$user1.value = $user
    你前面写的参数应该没错的啊...你自己再测试下吧
页: [1]
查看完整版本: 如何改写_IECreate 让其加载完DOM后就执行后续动作