如何修复脚本中的windows.open()错误

时间:2019-01-12 11:56:05

标签: javascript php html

我想通过脚本打开文件中列出的几个网页。 我应该如何打开这些链接?

我试图通过while()做到这一点。除非表达式中没有链接,否则它仅适用于href而不适用于window.open()

<?php
// Datei öffnen zum lesen und schreiben open and read
$handle = fopen (".../urls.txt", "r");

while ( $inhalt = fgets ($handle, 4096 ))
    {
        echo "<li> $inhalt "; ?>
        <script> window.open("<?php echo $inhalt; ?>","_blank") </script>
        <a href="<?php echo $inhalt; ?>" target="_blank">TitleM</a>
        <?php
    }

fclose($handle);
?>

我想打开例如url.txt中列出的7个新窗口中的7个不同链接。 到href,它们都以while()列出。 但是window.open()仅在新窗口中打开第7个链接。 前6个链接将被忽略。 但是,如果window.open()没有$inhalt,它将打开七个新窗口。 非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

问题是window.open()的第二个参数。第二个参数是窗口名称。如果您在每次迭代中都设置了相同的名称,它将始终以相同的窗口为目标。

为Windows提供不同的名称:

<script> window.open("<?= $inhalt; ?>", "<?= md5($inhalt) ?>") </script>

这将使用URL的md5哈希为Windows提供唯一的名称。

您可以详细了解window.open() here

旁注:

您应该检查浏览器是否阻止了弹出窗口。
关闭您的<li>标签也是一个好习惯(即使它是可选的)。

答案 1 :(得分:0)

换行符包含在fgets的返回值中。 因此,您应该trim $吸入。

<script>
window.open("<?= trim($inhalt) ?>", "<?= md5($inhalt) ?>");
</script>

答案 2 :(得分:0)

与此同时,我找到了解决方案:

<script> window.open(<?php echo "$inhalt";?>, "<?= md5($inhalt)?>") </script>

并且txt文件中的链接必须位于“”之间。 样品: “ domain1.tld” “ domain2.tld” ... “ domain7.tld”

现在可以使用了。每个链接都在单独的窗口中打开。