为什么set.timeout在这个php while循环中不起作用?

时间:2016-04-03 15:18:10

标签: javascript php while-loop settimeout window.open

我对javascript不太熟悉。我想打开这个while循环中的每个链接并超时。没有超时,它正在工作。

<?php
$zaehler = 23423423; // id aus dem forular
$anzahl = 5; // popups aus dem forumlar
$max = $zaehler + $anzahl; //  = maximale anzahl 

$increment = 1; // zählt die tradeid um 1 hoch

$i = 0;

while($zaehler < $max) {
    $i++;
    echo $i . " | ";
    $link = $zaehler += $increment;
    echo "https://mywebsite/" . $link;



    echo"<form action='https://mywebsite/$link' method='post' target='_blank'> <input type='submit'> </form>"; //irrelevant, da popups schon geöffnet werden

    echo "<script type=\"text/javascript\"> 
        window.open('https://mywebsite/$link', '_blank', setTimeout(1000), )
    </script>";

    echo "<hr>";



    if($link == $max) {
      echo "<hr><br>Stop";
      break; //bricht die schleife ab, wenn maximale vorgegebene anzahl an popups erreicht ist
   }
}
?>

2 个答案:

答案 0 :(得分:0)

如果您仔细阅读window.open,例如here,您会看到它的第三个参数与setTimeout无关。

通过settimeout打开窗口的正确代码是:

window.setTimeout(
    // what to do:
    function() { window.open('https://mywebsite/url', 'WINDOW_NAME')  },
    // in what amount of time:
    1000
);

答案 1 :(得分:0)

您无法真正使用setTimeout()功能,因为您建议......

我想这大致是你在寻找的东西:

echo <<< EOT
<script type="text/javascript"> 
    setTimeout(function() {
        window.open('https://mywebsite/$link', '_blank');
    }, 1000);
</script>
EOT;

注意:我只使用nowdoc表示法,因为它更容易阅读。当然也可以为echo命令使用普通的文字字符串。