无需网络服务器即可使用Javascript加载本地文件

可能

我需要编写一个使用HTML5和canvas的软件。

整个软件应该能够在本地运行,而不需要服务器。所以我只能使用Javascript,不能使用php。

困难的部分:我必须动态获取操作期间所需的文本文件的内容。

例如:当软件启动时,我需要“ config.json”。在用户做出一些选择之后,我需要“ story1.txt”或“ story2.txt”,依此类推。

我的问题:

我不能使用Ajax,因为Chrome会阻止它-不允许本地文件提取其他文件的内容。我总是收到一条错误消息。

到目前为止,我已经尝试过:

  • 使用Ajax和jQuery加载文件

    Chrome浏览器不允许我加载文件

  • 将文件加载到脚本标签中

    即使我将JSON文件声明为js代码,我也无法访问已加载文件的内容

  • 将文件加载到不可见的iframe中,并读取其内容

    正在加载作品,我可以看到代码。但是,当我尝试访问IFrame的内容时,我再次收到Chrome错误消息:

    "Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match."
    

题:

有没有办法动态加载文本文件,还是我被迫使用Web服务器?

奥列格·沃尔科夫(Oleg V.Volkov)

如果您坚持使用Chrome,它具有一些命令行标记,以允许访问本地原始文件(--allow-file-access-from-files/ --disable-web-security)。请注意,您需要使用这些标志从头开始运行整个浏览器-即,如果已经有其他Chrome窗口打开标志,则不会有任何效果,并且该效果会持续存在于所有窗口中,直到Chrome关闭为止。安全。

如果使用某种自动安装脚本打包“应用程序”,则可以设置轻量级本地服务器。这仍然不是很好,因为您需要安装用户可能不希望甚至由于限制而完全无法安装的可执行文件。

您可以将基于HTML / JS的应用打包为Chrome扩展程序-扩展程序具有比随机代码更大的权限,但是您需要通过Google Play分发它,或提供说明为用户手动安装扩展程序。

最后,您可以格式化所有数据,包括您提到的有效JavaScript代码的配置和文本文件-即打包story1.txtstory1.js

var myapp.story1 = "Complete text of story1.txt"

然后从相应的变量中动态选择所需的内容,甚至使用DOM操作通过动态添加<script>标签仅加载所需的脚本在我看来,这是最好的选择,因为它具有较低的侵入性:它不需要任何安装/重新配置,只需开箱即用即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将本地系统上的 csv 文件加载到远程网络服务器上的 Mysql DB

来自分类Dev

无需网络即可在软件和应用程序之间链接在线网络服务器

来自分类Dev

无需网络服务器即可在 2 个页面之间导航和交换表单内容

来自分类Dev

使用本地网络服务器或使用Git

来自分类Dev

如何使用NodaTime从网络服务器查询本地系统时间和时间

来自分类Dev

如何使用chrome作为浏览器和nginx作为网络服务器清除缓存的javascript文件

来自分类Dev

使用ajax从网络服务器获取响应

来自分类Dev

双向网络服务器

来自分类Dev

转到网络服务器-不要使用时间戳缓存文件

来自分类Dev

通过 Python Flask 网络服务器播放保存在本地驱动器中的音频文件

来自分类Dev

从浏览器运行本地网络服务器的可能性

来自分类Dev

如何访问本地网络服务器

来自分类Dev

我的本地网络服务器页面在哪里?

来自分类Dev

在本地网络服务器中运行node.js的问题

来自分类Dev

我的本地网络服务器页面在哪里?

来自分类Dev

将物理磁盘从本地计算机移动到网络服务器

来自分类Dev

如何访问本地网络服务器

来自分类Dev

在异构 LAN 中本地运行 Linux 网络服务器?

来自分类Dev

图片不会在基于python的网络服务器上加载

来自分类Dev

在 Angular-Wakanda 网络服务器上重新加载页面给出 404

来自分类Dev

使用Go的网络服务器,网站的根目录在哪里映射到文件系统?

来自分类Dev

本地主机(Apache服务器)和实时网络服务器有什么区别

来自分类Dev

网络服务器的out.flush()问题

来自分类Dev

与网络服务器相关的autoIndex是什么?

来自分类Dev

设置安全的网络服务器

来自分类Dev

设置动态网络服务器

来自分类Dev

保持我的生产网络服务器更新

来自分类Dev

网络服务器上的Memcached

来自分类Dev

将android应用与网络服务器连接

Related 相关文章

  1. 1

    将本地系统上的 csv 文件加载到远程网络服务器上的 Mysql DB

  2. 2

    无需网络即可在软件和应用程序之间链接在线网络服务器

  3. 3

    无需网络服务器即可在 2 个页面之间导航和交换表单内容

  4. 4

    使用本地网络服务器或使用Git

  5. 5

    如何使用NodaTime从网络服务器查询本地系统时间和时间

  6. 6

    如何使用chrome作为浏览器和nginx作为网络服务器清除缓存的javascript文件

  7. 7

    使用ajax从网络服务器获取响应

  8. 8

    双向网络服务器

  9. 9

    转到网络服务器-不要使用时间戳缓存文件

  10. 10

    通过 Python Flask 网络服务器播放保存在本地驱动器中的音频文件

  11. 11

    从浏览器运行本地网络服务器的可能性

  12. 12

    如何访问本地网络服务器

  13. 13

    我的本地网络服务器页面在哪里?

  14. 14

    在本地网络服务器中运行node.js的问题

  15. 15

    我的本地网络服务器页面在哪里?

  16. 16

    将物理磁盘从本地计算机移动到网络服务器

  17. 17

    如何访问本地网络服务器

  18. 18

    在异构 LAN 中本地运行 Linux 网络服务器?

  19. 19

    图片不会在基于python的网络服务器上加载

  20. 20

    在 Angular-Wakanda 网络服务器上重新加载页面给出 404

  21. 21

    使用Go的网络服务器,网站的根目录在哪里映射到文件系统?

  22. 22

    本地主机(Apache服务器)和实时网络服务器有什么区别

  23. 23

    网络服务器的out.flush()问题

  24. 24

    与网络服务器相关的autoIndex是什么?

  25. 25

    设置安全的网络服务器

  26. 26

    设置动态网络服务器

  27. 27

    保持我的生产网络服务器更新

  28. 28

    网络服务器上的Memcached

  29. 29

    将android应用与网络服务器连接

热门标签

归档