根据文件夹内容创建超链接

Create hyperlinks based on folder content

本文关键字:创建 超链接 文件夹      更新时间:2023-09-26

我想在页面上创建指向其根文件夹内某些文件的超链接。

例如:

'Homepage.html -这将包含:

的超链接
'1.html
'2.html
'3.html
etc.

我可以简单地手动执行此操作,但随着文件数量(1,2,3…)的增加,我希望自动执行此过程。

JavaScript可以这样做吗?如果有,怎么做?

我得到的印象是你问关于使用JavaScript的问题,因为你可能根本不知道如何去做。如果我说错了,我道歉。也就是说…

正如其他人所说,JS无法单独完成这些。您将需要一个服务器组件(例如PHP)来读取目录以获取其文件。从这一点来看,你有很多选择。我的建议是,完全忘记JS,除非你有使用它的需求。只要使用DHTML就可以了,这是PHP最基本的技能。将此文件命名为main.php:

<html>
<body>
<?php
// Read directory, spit out links
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo '<a href="/'.$entry.'">Link to file '.$entry.'</a><br>';
        }
    }
    closedir($handle);
}
?>
</body>
</html>

上面的例子或多或少直接取自PHP的readdir文档。根据您的示例文件名,在浏览器中访问main.php应该输出如下内容:

Link to file 1.html
Link to file 2.html
Link to file 3.html
...

您可能需要调整href值以反映html文件的路径,相对于您的根文件夹。

欢呼

JavaScript不能这样做。您可以设置一个PHP(或其他服务器端脚本),它返回文件夹内容的JSON,因为服务器端语言可以访问它,然后使用AJAX调用该脚本。

一个可能的解决方法:

  1. 从命令行列出文件夹内容
  2. 在浏览器中使用输出作为输入,复制&在HTML输入框中粘贴内容或拖动;滴法。

在Windows(非Unicode)下列出:dir *.exe/B/S/O-G如果要将内容保存到文件中dir *.exe/B/S/O-G> contentList.txt

JavaScript工作在客户端,在你的浏览器中,你需要的是一个服务器端脚本,例如PHP。

JavaScript不能这样做!

您需要在页面中添加一个ID为

的HTML元素。
<div id="foo"></div>

然后,使用JavaScript,

for (var i = 1 ; i <= 10 ; i++) {
    document.getElementById("foo").innerHTML += "<a href='"" + i + ".html'">Link " + i + "</a>";
}

转义的引号('")很重要——把它们弄乱会导致意想不到的结果。

编辑我仔细阅读了您的问题,并意识到您需要随着添加更多文件而增加它。在这种情况下,您可以使用PHP在页面上生成JavaScript,即

for (var i = 1 ; i <= <?php echo $maxFileIndex; ?> ; i++) {
    document.getElementById("foo").innerHTML += "<a href='"" + i + ".html'">Link " + i + "</a>";
}

或者您可以向服务器发出AJAX请求,并根据响应填充div