列出另一个html文件(使用javascript/jQuery)中的本地html文件,并动态为它们创建链接
我计划通过双击在浏览器中打开一个供本地使用的静态html文件(没有运行http服务器) 在一个文件夹中(与索引文件位于同一文件夹中),我计划添加“item”文件,这样当我打开主文件时,它会列出该文件夹中的所有html文件,并创建一些带有文件链接的导航列表。稍后我可以在文件之间添加一些导航(交叉链接),但这是另一个问题 主要的问题是,索引文件不知道项目文件提前了多少(以及哪些),而是应该在加载索引页时动态列出它们,并在索引页中的某个静态元素内创建链接列表 更新:一个伪代码片段或多或少地显示了我想要的内容(不是javascript语法):列出另一个html文件(使用javascript/jQuery)中的本地html文件,并动态为它们创建链接,javascript,jquery,html,client-side,static-html,Javascript,Jquery,Html,Client Side,Static Html,我计划通过双击在浏览器中打开一个供本地使用的静态html文件(没有运行http服务器) 在一个文件夹中(与索引文件位于同一文件夹中),我计划添加“item”文件,这样当我打开主文件时,它会列出该文件夹中的所有html文件,并创建一些带有文件链接的导航列表。稍后我可以在文件之间添加一些导航(交叉链接),但这是另一个问题 主要的问题是,索引文件不知道项目文件提前了多少(以及哪些),而是应该在加载索引页时动态列出它们,并在索引页中的某个静态元素内创建链接列表 更新:一个伪代码片段或多或少地显示了我想要
for (filename in listfiles(directory='somedirectory', filetype='html') {
somediv.appendChild(elementType='a', href=filename)
你知道如何在没有服务器端脚本的情况下做到这一点吗?重要的是要明确这是个人使用的,与互联网或web开发无关
谢谢你的阅读 不完全理解您的目标,但如果您想获取某个页面的内容并将其加载到另一个页面中,您可以使用它。 但是,有些浏览器在本地阻止它。 我已经从文本文件中加载了内容,所以如果它能够从您提到的文件中读取内容
我想您将能够提取所需的内容,但在纯JavaScript中不可能这样做。您需要一些服务器端代码来告诉浏览器文件列表。可能最简单的方法是进行AJAX调用,其中服务器使用所需的文件列表进行响应
这正是我们要做的。这是一段有点旧的代码(从2008年开始),因此可能与当前版本的jQuery存在一些不兼容的地方,但您可以从中获得一些启发。:-) 这是一个有点老的问题,但我认为许多人试图找到一些解决办法。这里有一个 我使用扩展创建了这种解决方案。已经有编译的扩展DLL/SO,因此如果您不想(例如)添加新方法,则无需重新编译。您可以使用该库并开发firefox、chrome的扩展,或许还可以与IE的AtiveX组件一起开发。下面是我为chrome所做的 1) 下载svn回购协议 2) 对于较新的Chrome版本,编辑位于
test\extension
-文件夹下的manifest.json
-文件。下面是我的manifest.json文件
{
"manifest_version": 2,
"name": "npapi-file-io-test",
"description": "NPAPI demo",
"version": "1.0",
"description": "Test extension for npapi-file-io project",
"background": {
"page": "background.html"
},
"plugins": [{"path": "npapi-file-io-32.dll", "public": true},{"path": "npapi-file-io-32.so", "public": true},{"path": "npapi-file-io-64.so", "public": true}]
}
3) 将延长件安装到镀铬管中
4) 在页面中使用扩展名。下面的示例列出了/tmp文件夹中的文件
<!DOCTYPE XHTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>NPAPI File IO test</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
var fs = $('#fs')[0];
var dir = "/tmp";
var files = fs.listFiles(dir);
for (var f in files) {
if (files[f].type == "file") {
$('#filelist').append('<a href="file:///'+dir+"/"+files[f].name+'">'+files[f].name+'</a><br/>');
}
}
});
</script>
</head>
<body>
<embed type="application/x-npapi-file-io" id="fs">
<div id="filelist"></div>
</body>
</html>
NPAPI文件IO测试
$(文档).ready(函数(){
var fs=$('#fs')[0];
var dir=“/tmp”;
var files=fs.listFiles(dir);
for(文件中的var f){
如果(文件[f]。类型==“文件”){
$(“#文件列表”).append(“
”);
}
}
});
在这里阅读更多关于此的信息,看看Active-X。不过它只适用于IE。HTML5似乎是另一种选择:如果我知道文件名,我已经在iframe中顺利加载了本地html。我想要的是一种列出文件名的方法,这样我就可以从这个文件名列表中动态创建iFrame(或链接,或任何其他元素)。我已经编辑了这个问题,并包含了我想做的psedo代码块。我知道了,但我想这在js中是不可能的。我建议您使用操作系统的一些语言和工具来生成该列表。