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

时间:2013-04-25 21:46:47

标签: javascript html

我想在页面上创建超级链接到其根文件夹中的某些文件。

例如:

\Homepage.html - 这将包含以下超链接:

\1.html
\2.html
\3.html
etc.

我可以手动执行此操作,但我希望自动执行该过程,因为文件数量(1,2,3 ...)将会增加。

JavaScript能做到吗?如果是这样,怎么样?

5 个答案:

答案 0 :(得分:2)

我得到了您对使用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 docs。根据您的示例文件名,在浏览器中访问main.php,这应该输出如下内容:

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

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

干杯

答案 1 :(得分:1)

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

答案 2 :(得分:0)

可能的解决方法:

  1. 从命令行列出文件夹内容
  2. 在浏览器中使用输出作为输入复制和放大将内容粘贴到html输入字段或某些拖放内容中drop method。
  3. 在Windows下列出(非Unicode): dir * .exe / B / S / O-G 如果要将内容保存到文件中 dir * .exe / B / S / O-G&gt; contentList.txt

答案 3 :(得分:-1)

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

JavaScript无法做到这一点!

答案 4 :(得分:-1)

您需要在页面中放置一个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