求助 想在新窗口中获取DOM

almer 2014-09-16 09:17:38
想要执行一个脚本,来实现自动选择,提交数据
遇到这样的一个问题:

首先 我要点击一个链接,源文件会执行一个javascript 然后弹出一个窗口,

我用的是这样的的语句

var a = $(.yy_list .tdwhite a').eq(0).attr('href')
eval(a)


接着我要在弹出的对话框中选择一个数据并点击
$('.divcss5').eq($('.divcss5').size()-1).trigger('click')
如果我分两次执行以上两段代码 没有问题

但是合在一起,就是选不中新窗口的数据

我以为是新页面没有加载完成的原因

于是在中间等待了1秒钟,变成如下代码


var a = $(.yy_list .tdwhite a').eq(0).attr('href')
eval(a)
sleep(1000)//等待1sec
$('.divcss5').eq($('.divcss5').size()-1).trigger('click')

可是却发现 新窗口要等到1秒钟之后才弹出,而且仍然选不中数据,
按照我的理解 应该是先弹出新窗口,然后再等待1秒钟啊,结果却不是我想的那样


请大神们帮帮忙
...全文
108 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
almer 2014-09-17
  • 打赏
  • 举报
回复
诶,我确实用了死循环 今天早上换了方法。 我新弹出的页面不是iframe。是一个弹窗,
  • 打赏
  • 举报
回复
如果你的是iframe一定要再iframe的onload事件中执行,延时多少秒执行第二句代码这个时间确定不了的,依赖网络和服务器的带宽

你那个sleep不会是用死循环那种来模拟的吧。。那就导致浏览器假死了不会加载其他内容了,js没有sleep这种挂起线程的方法,用计时器来做,不过计时器延时时间定不了,具体看上面的
var a = $('.yy_list .tdwhite a').eq(0).attr('href')
eval(a)
setTimeout(function(){
$('.divcss5').eq($('.divcss5').size()-1).trigger('click')
},1000);//1s后执行代码

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧