您的位置:首页 > 其它

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对象了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  chrome插件
相关文章推荐