2016-04-03 11 views
-5

Ich bin nicht sehr vertraut mit Javascript. Ich möchte jeden Link in dieser While-Schleife mit einem Timeout öffnen. Ohne Zeitüberschreitung funktioniert es.Warum funktioniert set.timeout nicht in dieser php While-Schleife?

<?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 
    } 
} 
?> 
+1

hast du überhaupt die Dokumentation von 'window.open' und' setTimeout' gelesen? – Federkun

Antwort

0

Sie nicht wirklich die setTimeout() Funktion nutzen zu können, wie Sie vorschlagen ...

Ich denke, das grob ist, was Sie suchen:

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

Hinweis: Ich verwende einfach die nowdoc Schreibweise, da es einfacher zu lesen ist. Natürlich ist es auch möglich, eine normale Literal-Zeichenfolge für den Echo-Befehl zu verwenden.

0

Wenn Sie window.open lesen Sie sorgfältig, zum Beispiel here, Sie werden sehen, dass dritte Argument es nicht etwas mit setTimeout verbunden ist.

richtigen Code für Ihre Fenster über settimeout Öffnen ist:

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