所以我有一个数据表,它有两列,一列包含一个锚,另一列包含一个图像。
这是我需要做的。单击第一个链接,在新选项卡中将其打开。等一段时间,关闭标签继续到下一个。这是我到目前为止所做的。
我不会对这个javascript和jQuery的东西不熟悉。
因此,我可以获取锚点列表并单击我想要的任何人,问题是它在新窗口中打开并且使用.attr('target', '_blank')
对我没用。
$("#tables").find('a').get(0).click()
点击锚点后,锚点会在页面加载时消失,所以我只需要知道第一个锚点的位置。所以这就是我的需要。
单击锚0,等待30秒关闭打开的选项卡,刷新,重复直到找不到锚点。
这是我到目前为止所做的工作。
function clickAds() {
if ($("#tables").find('a').length > 0) {
$("#tables").find('a').get(0).click();
setTimeout(clickAds() 35000);
location.reload()
};
clickAds()
我已经编辑了我的问题,现在有代码一遍又一遍地点击相同的链接,直到Chrome崩溃。我无法让超时工作!有没有人知道为什么?
答案 0 :(得分:0)
更改您的代码:
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块看起来不对,因为我没有看到结束支撑。然后在你的超时中不要包括braced()但是rater只是回调函数的名字。
另一种方式是:
function clickAds()
{
if ($("#tables").find('a').length > 0)
{
$("#tables").find('a').get(0).click();
setTimeout(function()
{
clickAds();
}, 35000);
// location.reload()
}
}
你给超时提供了一个调用clickAds函数的自己的回调函数