所以我有一个包含两列的数据表,一列包含 anchor ,另一列包含图像。
这就是我需要做的。单击第一个链接,在新选项卡中打开它。等待一段时间,关闭选项卡,继续下一个。这就是我到目前为止所拥有的。
我对 javascript 和 jQuery 东西不是很陌生。
这样我就可以获取 anchor 列表并单击我想要的任何人,问题是它在新窗口中打开并且使用 .attr('target', '_blank')
没有为我工作。
$("#tables").find('a').get(0).click()
单击 anchor 后, anchor 将在页面加载时消失,因此我只需要知道第一个 anchor 在哪里。这就是我所需要的。
点击 anchor 0,等待 30 秒关闭打开的选项卡,刷新,重复,直到找不到 anchor 。
这就是我迄今为止正在研究的内容。
function clickAds() {
if ($("#tables").find('a').length > 0) {
$("#tables").find('a').get(0).click();
setTimeout(clickAds() 35000);
location.reload()
};
clickAds()
我已经编辑了我的问题,现在有代码可以一遍又一遍地单击相同的链接,直到 chrome 崩溃。我无法超时工作!有人知道为什么吗?
最佳答案
更改您的代码:
function clickAds() {
if ($("#tables").find('a').length > 0) {
$("#tables").find('a').get(0).click();
setTimeout(clickAds() 35000);
location.reload()
};
对此:
function clickAds()
{
if ($("#tables").find('a').length > 0)
{
$("#tables").find('a').get(0).click();
setTimeout(clickAds, 35000);
// location.reload()
}
}
你的 if block 似乎不正确,因为我没有看到右大括号。然后在超时中不包含braced(),而仅评估回调函数的名称。
另一种方法是:
function clickAds()
{
if ($("#tables").find('a').length > 0)
{
$("#tables").find('a').get(0).click();
setTimeout(function()
{
clickAds();
}, 35000);
// location.reload()
}
}
您为超时提供了自己的回调函数来调用 clickAds 函数
关于javascript - jQuery 无法设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248584/