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


Why is set.timeout not working in this php while loop?

我对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
   }
}
?>

您不能真正按照建议使用setTimeout()函数。。。

我想这大概就是你想要的:

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

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

如果你仔细阅读window.open,例如这里,你会发现它的第三个自变量与setTimeout无关。

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

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