这是用于脱机应用程序。
在html
中,我们可以访问与html页面相关的文件。例如:
<script src="scripts/jquery-3.3.1.min.js"></script>
<link rel='stylesheet' href='styles/style.css'>
<img src='./images/file1.jpg'/>
如果/images
目录中有很多图像,是否可以使用Javascript
列出目录中的所有图像,还是我需要对图像名称进行硬编码?
我特别要求使用Javascript,而没有Node,直接从Chrome运行文件。
答案 0 :(得分:0)
通常,客户端无权访问服务器的目录树。这意味着任何客户端javascript都将无法列出目录树。
如果不存在索引文件,但通常会皱眉,则可以配置apache以列出文件树。
如果您(反对我的建议)想要这样做,则可以配置apache列出文件,然后使用JavaScript提取文件列表。
更好的方法是使用服务器端代码(Node.js服务器,PHP等),该代码可以访问文件系统并提供文件列表。
Javascript通常无权访问本地资源,并且在尝试获取常规资源时将抛出CORS错误。 (无论您是否已经在本地目录中,都会引发CORS错误。)这使得没有网络服务器几乎不可能做到这一点。
答案 1 :(得分:0)
尝试运行chrome.exe --allow-file-access-from-files
通过运行上面的命令行,它将使用以下命令启用http调用:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "SourceFolder=C:\test"
set "LogExtract=%SourceFolder%\ExtractionLog.txt"
set "LogError=%SourceFolder%\ErrorLog.txt"
set "ArchiveExtracted="
del /Q "%LogExtract%" "%LogError%" 2>nul
for /D %%I in ("%SourceFolder%\*") do (
if /I not "%%~nxI" == "done" (
for /F "eol=| delims=" %%J in ('dir "%%I\*.rar" "%%I\*.zip" /A-D-H /B /ON 2^>nul') do (
if exist "%%I\%%J" (
echo Extracting "%%I\%%J" ...
"%ProgramFiles%\WinRAR\WinRAR.exe" x -cfg- -logpfu="%LogExtract%" -or -- "%%I\%%J" "%%I\"
if errorlevel 1 (
set "ArchiveFile=%%I\%%J"
>>"%LogError%" call echo Error %%ErrorLevel%% on extracting "%%ArchiveFile%%"
) else (
echo %%~nJ| %SystemRoot%\System32\findstr.exe /I /R "\.part[0123456789][0123456789]*$" >nul
if errorlevel 1 ( del /F "%%I\%%J" ) else for %%# in ("%%~nJ") do del /F /Q "%%I\%%~n#.part*%%~xJ"
)
)
)
if /I not "%%~nxI" == "done" if not exist "%%I\*.rar" if not exist "%%I\*.zip" move /Y "%%I" "%SourceFolder%\done\"
)
)
endlocal
请注意,数据正在返回字符串。 如果将其附加到html中,则会显示directory
答案 2 :(得分:0)
Hand 编码(无需安装Web服务器),有许多工具可以为单个目录提供服务,例如PHP或{{3 }}内置服务器。
但是硬编码是:您无法通过javascript访问本地文件系统,但是如果您在导航栏中键入(file://
)网址或点击链接,浏览器就可以指向它。
在链接的情况下,浏览器会在远程页面(来自Web服务器)中拒绝它们,而不是已经存在于本地文件中(否则您将看不到网页的下载版本)。
我从未测试过绝对路径,但是(我认为)如果您对该目录具有权限,它应该可以工作。
如果没有,则存在浏览器扩展程序,例如Python,该扩展程序允许打开该链接(如果用户接受)。
问题是,正如我所说,您需要将链接手动放置在页面中,如果链接太多,则可能需要一些时间,除非您习惯了Vim等真正的编辑器,或者至少是您,能够使用您喜欢的任何编程语言生成它。