rolaka 发表于 2011-2-6 23:20:15

关于重新封装ie.au3 或者 封装xmlhttp代替 的提议

现在au3集成的ie.au3,最后一次更新是2008年。

用了很长事件,一直感觉这东西蛋疼的很……

主要有以下龌龊的地方:

1. 选择器非常折腾,tag name id 零零碎碎,对于form还专门加了一套,画蛇添足。

2. 插入执行js、增减dom元素非常不方便,_IEBodyReadText _IEDocWriteHTML _IEDocInsertHTML,各有各的毛病。(比如_IEDocWriteHTML 会重新加载整个页面,dom ready执行但脚本加载不正常云云

3. _IEAttach莫名其妙冒错,网页一多,绑定浏览器成功率都成问题。

还有其他奇妙的地方等待大家发掘


一般用ie.au3都是图方便把?不用自己处理cookies等等……

在acn的群里,简单的网页就不说了,复杂一点点的,很多人都是反复折腾到能用就不继续了,其实大家都在埋地雷玩……

所以,今天我就蛋疼的提个议,重新封装ie.au3,或者封装xmlhttp来部分代替ie.au3。

集思广益,看下这计划的可行性……

_ddqs. 发表于 2011-2-7 00:26:13

想法不错
但最好有BUG向发布方提交……统一修改
用都用上了
谁都修改,最后连用IE.AU3都会变味,不知该用哪版本
--------------------------------------------------------------
事实上有BUG也是好事
你可以不用该现成函数
自己研究下重写个函数调用就可
还有助了解该原理并能提高认识。。。

sxd 发表于 2011-2-7 00:51:56

悟空,你又疼了

风行者 发表于 2011-2-7 04:26:56

ie.au3 功能虽然强大,不过还不够好
能够拦截的事件不多,至少弹出窗口事件就不行

republican 发表于 2011-2-7 05:54:11

回复 4# 风行者


    这个与ie.au3无关吧,是autoit自身无法handle.

ceoguang 发表于 2011-2-7 09:42:32

正好说明了一个问题。大家太依赖自定义库了.

rolaka 发表于 2011-2-7 11:10:19

想法不错
但最好有BUG向发布方提交……统一修改
用都用上了
谁都修改,最后连用IE.AU3都会变味,不知该用 ...
_ddqs. 发表于 2011-2-7 00:26 http://autoitx.com/images/common/back.gif
打开ie.au3看一下量 你就会懂了
重写部分 每次都重新折腾一次么?

正好说明了一个问题。大家太依赖自定义库了.
ceoguang 发表于 2011-2-7 09:42 http://autoitx.com/images/common/back.gif
..."代码重用"嘛

auto 发表于 2011-2-7 12:35:11

数据提交的一般用抓包然后后台提交
当然也有做不了HTTPS似乎不能抓包了

还有一个上传附件,抓包看了一下,觉得挺复杂繁琐的
IE需要打开浏览器才能使用,觉得这一点不好

rolaka 发表于 2011-2-7 13:06:36

数据提交的一般用抓包然后后台提交
当然也有做不了HTTPS似乎不能抓包了

还有一个上传附件,抓包看了一下 ...
auto 发表于 2011-2-7 12:35 http://www.autoitx.com/images/common/back.gif
直接发送封包 不在本帖讨论范围内

78391493 发表于 2011-2-8 21:20:38

回复 8# auto


SSL也抓。。我佩服你

minterz 发表于 2011-2-9 00:15:36

何苦,直接curl

只为关注 发表于 2011-2-9 08:51:46

楼上的,windows下如何用curl,或者说win下如何用AutoIt调用curl呢?

只为关注 发表于 2011-2-9 09:03:29

关键是IE.au3获取控件太恶心,实在搞不懂弄个Form再包装起来有嘛意思,难道Form本身不是一个Element吗?实际中,我基本都是用$oIE.document.getElementById('loginname').value 这样的方式来获取或者设置元素的值。但是这个用整个IE的document元素感觉好怪啊,我也是从论坛上别人的帖子里看来的,这样的方式类似于JavaScript的方式,但是按照JS操作DOM的原则,也可以不直接用document啊,比如我先定位到某Form,得到$Form2,此时却不能用$Form2.getElementById('loginname')来获取这个控件,但是在JS里却是正确的代码,而且不用加载整个Document啊

_ddqs. 发表于 2011-2-9 14:37:43

回复 13# 只为关注

先这样理解。。。
解析器模式匹配问题:
---------------------------
IE(JS):模糊匹配
脚本----IE----DOM

window.open()
可用
open()

AU3:绝对匹配
脚本----AU3----DOM

sxd 发表于 2011-2-9 21:52:33

最佳方案 做个IE_Lite.au3
页: [1]
查看完整版本: 关于重新封装ie.au3 或者 封装xmlhttp代替 的提议