chrome插件开发之:处理某些订单无法自动提交的问题
2016-10-09 20:06
417 查看
(TM=天 猫)
嵌入js操作TM提交订单的界面的时候,还碰到一个很郁闷的问题:
不知道为什么,某些TM物品的购买,在订单界面的时候,无法获取订单界面的按钮的dom对象!而TB就完全没问题!
无法获取按钮,也就是意味着功能自动操作会停留在下订单的界面!这样子就悲剧了。
后来经过不断的调试,发现一个问题点:在某些TM的购买界面,chrome插件执行的时候,是无法获取对应的类对应的dom对象!而我单独在界面看,明明是这个类!!为什么插件执行的时候却是无法获取??
究竟什么问题呢?百思不得其姐。难道TM的开发人员还有办法可以屏蔽像chrome这些插件访问的这些dom的类?然后我逐步调试,慢慢定位了问题:应该是某些TM的下订单界面用了延迟加载的技术!导致,content_script执行的时候,这些元素的dom还没生成而无法获取!
定位问题之后,解决方法就很自然了:
先自动获取提交订单的按钮的dom对象;
如果可以获取,则执行自动购买的代码。
如果无法获取,则自动设定一个定时器,每100毫秒执行1次,一共执行100次(就是最多花10秒的时间等待TM的ui加载)。
每一次的循环,如果找到提交订单的按钮的dom对象,就clear定时器,再执行购买。
如果100次之后还没获取到,则提示用户:无法定位提交订单的按钮,请自己到下单界面提交订单!
用上这个逻辑之后,其实一般都没什么问题了。经过调试,一般循环1次就可以成功获取dom对象了!
嵌入js操作TM提交订单的界面的时候,还碰到一个很郁闷的问题:
不知道为什么,某些TM物品的购买,在订单界面的时候,无法获取订单界面的按钮的dom对象!而TB就完全没问题!
无法获取按钮,也就是意味着功能自动操作会停留在下订单的界面!这样子就悲剧了。
后来经过不断的调试,发现一个问题点:在某些TM的购买界面,chrome插件执行的时候,是无法获取对应的类对应的dom对象!而我单独在界面看,明明是这个类!!为什么插件执行的时候却是无法获取??
究竟什么问题呢?百思不得其姐。难道TM的开发人员还有办法可以屏蔽像chrome这些插件访问的这些dom的类?然后我逐步调试,慢慢定位了问题:应该是某些TM的下订单界面用了延迟加载的技术!导致,content_script执行的时候,这些元素的dom还没生成而无法获取!
定位问题之后,解决方法就很自然了:
先自动获取提交订单的按钮的dom对象;
如果可以获取,则执行自动购买的代码。
如果无法获取,则自动设定一个定时器,每100毫秒执行1次,一共执行100次(就是最多花10秒的时间等待TM的ui加载)。
每一次的循环,如果找到提交订单的按钮的dom对象,就clear定时器,再执行购买。
如果100次之后还没获取到,则提示用户:无法定位提交订单的按钮,请自己到下单界面提交订单!
用上这个逻辑之后,其实一般都没什么问题了。经过调试,一般循环1次就可以成功获取dom对象了!
相关文章推荐
- Chrome碉堡的新功能~铁道部春节刷票小助手插件横空出世~更新可自动提交订单
- chrome插件开发之:关于处理定时下单的时间点的处理问题
- chrome插件开发之:处理由于注入css导致页面的ui出现错位的问题
- chrome插件开发之:关于使用日期插件以及处理UI被覆盖的问题
- 关于SubSonic3.0插件使用实体进行更新操作时(执行T.Update()或T.Save()),某些列无法进行修改操作的问题处理
- Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)
- 【转】 【字符集】处理Toad显示乱码及Windows XP下无法插入“某些汉字”问题
- 解决android某些应用开发某些类无法解析/找到的问题--使用android隐藏类的方法
- [chrome - dev]解决版本27插件无法正常显示的问题
- 【字符集UTF8】处理Toad显示乱码及Windows XP下无法插入“某些汉字”问题
- 解决Webstorm通过Chrome无法调用JB插件调试的问题
- 64位WIN7下Android 开发环境搭建(SDK Manager闪退,无法更新sdk,建立新项目时无法正常自动生成Activity的问题解决)
- 任务栏无法自动隐藏的问题处理
- Eclipse插件开发中对于外部Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)
- 解决android studio 无法更新插件的问题(某些)
- eclipse中git插件无法向远程仓库提交tag的问题
- magento - 开发motopay站内支付时碰到的在某些模板下无法下单的问题(validateCreditCard is not defined)
- Eclipse插件开发中对于外部Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)
- chrome/firefox插件ie tab,解决无法使用网银的问题
- chrome插件开发记录(1)——解决问题“清单文件缺失或不可读”