Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单个选项卡中循环更改URL无效_Javascript - Fatal编程技术网

Javascript 在单个选项卡中循环更改URL无效

Javascript 在单个选项卡中循环更改URL无效,javascript,Javascript,我在尝试让它工作时遇到了问题。它可以工作,但它所做的只是将我带回脚本所在的loop.html文件 我想做的是: 我希望用户,我,输入URL分开我的一个空间。 然后在空间上拆分它们。然后将它们排列成一个阵列。 然后我希望它在每个url之间循环。但不需要加载页面。然后等待x个时间量,然后进入下一个 任何帮助都将不胜感激。 我的代码 功能睡眠(ms) { var dt=新日期(); dt.setTime(dt.getTime()+ms); while(newdate().getTime()

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

我想做的是: 我希望用户,我,输入URL分开我的一个空间。 然后在空间上拆分它们。然后将它们排列成一个阵列。 然后我希望它在每个url之间循环。但不需要加载页面。然后等待x个时间量,然后进入下一个

任何帮助都将不胜感激。 我的代码


功能睡眠(ms)
{
var dt=新日期();
dt.setTime(dt.getTime()+ms);
while(newdate().getTime()

在此处输入毫秒:

延迟
while(新日期().getTime()不好

使用
setTimeout()
method

以下方法对我有效(在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>

var乘积_数;
var-myPopup;
var itemCounter=0;
功能启动产品(表格){
myPopup=window.open(“关于:空白”,“弹出”);
var milli=form.inputbox2.value;
var input_from_user=form.inputbox.value;
产品编号=从用户处输入。拆分(“,100000);
nextProduct();
设置间隔(nextProduct,毫秒);
}
函数nextProduct(){
if(itemCounter>=产品编号.长度){
itemCounter=0;
}
myPopup.location.href=产品编号[itemCounter];
项目计数器++
}

我尝试过使用settimeout,但最终得到了相同的结果。此时此刻,我只需要代码来执行预期的操作:(如提到的55K,使用StimeTimeUT或SETTIME)。此外,考虑使用jQuery,处理起来会容易得多。PS:HTML看起来有点“老派”。我会考虑移动到XHTML。是的,我知道它的旧学校。我对JavaScript相当新。我使用HTML非常广泛,但不是JavaScript本身。只使用过片段。这是我自己尝试的一种尝试。正如我所说的,我只需要它来工作。而不把它插入JSFIDLE(JSFoDel.net)中。,我无法立即看出有什么问题。我建议您使用上述网站共享代码片段,因为它可以让您运行代码片段。此外,如果您真的陷入困境,请尝试使用警报(“xxxxx”)其中xxxx是一些有意义的调试信息。请记住检查所选浏览器上的JavaScript控制台,因为可能有错误!控制台上没有错误。请注意,如果我将var-launch\u code=product\u number[i];更改为var-launch\u code=product\u number[1];它将按预期打开第一个url。只是为了说明这一点。因此,我知道它“有效”只能输入实际的数字。产品编号[1]是第二个url。产品编号[0]有效吗?谢谢!这在java中对我来说也很好。这正是我想要的。我知道这不是一个好的做法。只是需要一些东西来完成我需要完成的工作。无论如何,感谢所有的帮助。太棒了,不客气。当你有机会时,请将此标记为正确答案:)完成。我知道人们很难理解我或其他人想做什么。我尽量用描述性的语言。如果需要更多关于我为什么这样做的信息,我本可以给出:)无论如何,这将以我需要的方式完全满足我的需求。
<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>