0

我在尝试使其正常工作时遇到问题。它可以工作,但它所做的只是让我回到脚本所在的 loop.html 文件。

我想要做什么:我希望用户,我,输入网址分隔我的空间。然后它在空间上拆分它们。然后将它们排列成一个阵列。然后我希望它循环浏览每个网址。虽然不需要页面加载。然后等待 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>
4

2 回答 2

0

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

使用setTimeout()方法

于 2013-04-26T09:30:17.573 回答
0

以下对我有用(在 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>
于 2013-04-26T10:08:53.343 回答