2012-05-26 149 views
1

这是一个脚本,它应该刷新页面,查找价格,如果价格低于用户指定的价格,则购买它。如果价格较高,刷新页面,直到价格发现它再次:脚本只运行一次

var tags = document.getElementsByTagName('b'); 
var price; 
var lp; 
var sp; 
var setSnipe = false; 
var loaded = false; 
for (i = 0; i < tags.length; i++) { 
    console.log(tags[i].innerHTML); 
    if(tags[i].innerHTML.indexOf('R$') !== -1) { 
     if (i==5){ 
      var price = tags[i].innerHTML.match(/\d+/)[0]; 
      setSnipe = confirm("Lowest price: R$" + price +". Set a sniper?"); 
     } else { 
     } 
    } else { 
    } 
} 
if (setSnipe == true) { 
    lp = prompt("Snipe Price?"); 
    refresh(); 
} 

function refresh() { 
    location.reload(true); 
    setTimeout('checkSnipe()', 3000); 
} 

function checkSnipe() { 
    var tagss = document.getElementsByTagName('b'); 
    for (i = 0; i < 6; i++) { 
     console.log(tagss[i].innerHTML); 
     if(tagss[i].innerHTML.indexOf('R$') !== -1) { 
      if (i==5){ 
       var price = tagss[i].innerHTML.match(/\d+/)[0]; 
       price = Number(price); 
       if (price<=lp){ 
        alert("Snipe Found!"); 
       } else { 
        alert("No snipe"); 
        refresh(); 
       } 
      } 
     } 
    } 
} 

出于某种原因,它只能运行一次,然后停止。任何建议/帮助?

谢谢, 亚历克斯

+0

当然有更好的方法来做到这一点......除非这是一项家庭作业。 –

+0

经典鸡肉/鸡蛋情节 –

+0

@Jeff不是HW的任务,为我自己的roblox.com。显然不是最好的编剧:/ – Alex

回答

2

刷新时,您的代码不存在了。你有一个新的页面,新的代码。当你明白这一点时,显然不存在的代码将不会运行。

+0

会使页面成为一个iFrame的工作呢? – Alex

+0

只要代码在'iframe'之外,是的。但是访问'iframe'中的元素(以及重新加载'iframe')需要更多的工作。但是,使用AJAX会更容易和更好。 – Amadan

+0

谢谢,从来没有听说过AJAX,但生病了。 – Alex

0

尽量让您的代码在用户刷新浏览器时仍然存在。另外,再次检查你的代码,它可能有一些逻辑错误(你可能在if-else部分放错了大括号)。