Javascript导航到随机网址

时间:2018-03-14 02:57:40

标签: javascript userscripts

我试图为论坛编写用户脚本,我要求它随机导航到不同的URL。

基本的想法是,我希望大多数时间都能上网,以增加我的在线时间。在一段时间不活动之后,论坛不会增加到在线花费的时间(让我们假设5分钟)。

那么,我如何编写一个javascript代码来继续导航到论坛中的不同网址。

这是论坛帖子的格式: somesite.xxx/showthread.php?tid=xxxxxxx 所以脚本应该访问一些随机线程(比如0123456),等待5分钟并访问下一个随机线程(比如1123456)并保持循环重复。

我试过了:

setTimeout(function() {
    location.href = "somesite.xxx/showthread.php?tid=4128749";
}, 10000);

setTimeout(function() {
    location.href = "somesite.xxx/showthread.php?tid=5128749";
}, 10000);

setTimeout(function() {
    location.href = "somesite.xxx/showthread.php?tid=3128749";
}, 10000);

但我无法继续添加所有无数的网址,而且上述代码也不起作用,请继续添加网站网址,例如somesite.xxx/somesite.xxx /...

3 个答案:

答案 0 :(得分:1)

嗯,你需要以某种方式生成URL列表。无论是来自API,PHP还是JavaScript数组,文本文件等等。否则你必须生成一个随机的7位数字并希望命中。

获得线程列表后,将它们转换为数组,然后选择一个随机数,然后运行setTimeout函数(在window.之前缺少location

var threads = ['4128749', '5128749', '3128749', ...];  
var random  = threads[Math.floor(Math.random() * threads.length)];

setTimeout(function(){
    window.location.href = 'http://somesite.xxx/showthread.php?tid=' + random;
}, 10000);

如果您不关心未命中,或者您知道所有7位数字都会产生一个线程,您可以随机生成该数字,然后将该位置设置为该数字。

//Generate random 7 digit number
var random  = Math.floor(Math.random()*9000000) + 1000000;

setTimeout(function(){
    window.location.href = 'http://somesite.xxx/showthread.php?tid=' + random;
}, 10000);

答案 1 :(得分:0)

说,你有一系列hrefs。例如hrefArray = [href1,href2,...]。现在你可以按照hrefs循环。

const hrefArray = ['somesite.xxx/showthread.php?tid=4128749', 'somesite.xxx/showthread.php?tid=5128749'];
const len = hrefArray.length;

for (let i = 0; i < len; i++) {
  setTimeout(function() {
    location.href = hrefArray[i];
  }, (Math.floor(Math.random() * i) + 1000);
}

答案 2 :(得分:0)

执行该功能时,请使用setInterval代替setTimeout 作为一个参数反复传递。

const timeout = 300000;

setInterval(function () {
    const sevenRandom = Math.floor(100000 + Math.random() * 9000000);
    const windowHandle = window.open('somesite.xxx/showthread.php?tid=' + sevenRandom, '_blank');

    setTimeout(function () {
        windowHandle.close();
    }, timeout);
}, timeout);

将以上代码段粘贴到浏览器的控制台中,每五分钟后,它会在新标签页中打开您的网址。此外,它还会关闭之前打开的标签,以避免打开大量标签。

注意:避免将此用于任何类型的垃圾邮件,仅用于真实目的。