在单个表中循环更改url不起作用

Looping to change urls in a single tabe not working

本文关键字:url 不起作用 循环 单个表      更新时间:2023-09-26

我有问题,试图得到这个工作。它可以工作,但它所做的只是把我带回到脚本所在的loop.html文件。

我想做的是:我想让用户输入以空格分隔的url。然后在空间上把它们分开。然后将它们排列成一个数组。然后我想让它循环通过每个url。不需要页面加载虽然。然后等待x的时间,然后进入下一个。

任何帮助都会很感激。我的代码

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function sleep(ms)
{
    var dt = new Date();
    dt.setTime(dt.getTime() + ms);
    while (new Date().getTime() < dt.getTime());
    return;
}
function launchproducts (form) {
var milli = form.inputbox2.value;
var product_numbers;
var input_from_user = form.inputbox.value;
product_numbers = input_from_user.split(" ",100000);
var one = window.open("about:blank", 'pop');
        for ( var i = 0; i < product_numbers.length; i++) {
            var launch_code = product_numbers[i];
            one.location.href = launch_code;
            sleep(milli);
        }
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myform" ACTION="" METHOD="GET">Enter product numbers: <BR>
<INPUT TYPE="text" NAME="inputbox" VALUE=""><P>
<METHOD="GET">Enter milliseconds here: <BR>
<INPUT TYPE="number" NAME="inputbox2" VALUE="5000"><P>
<INPUT TYPE="button" NAME="button" Value="Start" onClick="launchproducts(this.form)">
</FORM>
</BODY>
</HTML>

下面的工作为我(在IE8上测试)。请注意:我不认为这是一个"最佳实践"的答案,只是你目前得到的一个粗略的复述,所以它实际上是有效的,并且稍微更具可读性。

<SCRIPT LANGUAGE="JavaScript">
    var product_numbers;
    var myPopup; 
    var itemCounter = 0;
    function launchproducts(form) {
        myPopup = window.open("about:blank", 'pop');
        var milli = form.inputbox2.value;
        var input_from_user = form.inputbox.value;
        product_numbers = input_from_user.split(" ", 100000);
        nextProduct();
        window.setInterval(nextProduct, milli);
    }
    function nextProduct() {
        if (itemCounter >= product_numbers.length) {
            itemCounter = 0;
        }
        myPopup.location.href = product_numbers[itemCounter];
        itemCounter++
    }
</SCRIPT>

while (new Date().getTime() < dt.getTime());的延迟不好

使用setTimeout()方法