【问题标题】:JS Snippet reading from local fileJS Snippet 从本地文件读取
【发布时间】:2021-01-10 17:22:45
【问题描述】:

我有一个 JavaScript sn-p,它是在 Chrome > Devtools > sources > Snippets 中创建、保存和运行的。这是我不与任何人共享的个人代码,它只在一台机器上运行,并且只在 Chrome 控制台内运行。因此,任何关于安全的担忧都是无关紧要的。

sn-p 使用许多参数,这些参数当前被硬编码为 sn-p 本身内的一个数组。我想让代码更灵活,通过将参数存储在文本文件中,然后运行时的 sn-p 应该从文件中读取这些参数并作为字符串数组存储在内存中。

没有 HTML 文档或元素,所以我不知道在这种情况下如何使用 File API 或 fileReader。

问:如何使用在 Chrome 控制台中运行的纯 JS 代码读取本地文本文件(客户端)?

谢谢

【问题讨论】:

  • 您好 Yasser,您可以在窗口对象上设置参数和函数,以便在其他文件中重用它们,您尝试过这种方式吗?
  • 嗨,Tarik,不知道该怎么做。顺便说一句,参数列表可能是几千行文本(并且随着时间的推移并不相同)。我不介意是否有办法将它们复制到 LocalStorage 或浏览器中的任何内存,但主要困难是能够从文件中读取它们。
  • window.foo = fooInstance; window.fooFunction = fooFunctionSignature; 这两个变量可以在当前窗口Yasser的任何脚本中使用

标签: javascript console local code-snippets


【解决方案1】:

https://developer.mozilla.org/en-US/docs/Web/API/FileReader 建议您根本不应该按照您的想法使用它。

我对解决方法的建议是运行一个提供文本文件内容的小型网络服务器,然后在 sn-p 中使用 XMLHttpRequest 从网络服务器获取参数。

【讨论】:

  • 这正是我的问题。 FileReader 似乎不起作用。 MDN 说它应该在安全的环境中工作,但我认为在控制台中运行 sn-p 是尽可能安全的。
  • 我也可以在 NodeJS 中运行代码并拥有对文件系统的完全访问权限,但要求代码仅在浏览器中运行,除了本地文本文件之外没有任何外部资源。
  • @Yasser Ali 好吧,您将需要文件输入或画布等 DOM 元素,然后它会起作用,因为您可以显示“上传文件”对话框。但是如果没有 DOM 元素和用户交互,我看不出它是如何工作的。也许要求是……不好。
猜你喜欢
  • 1970-01-01
  • 2014-11-08
  • 2015-07-25
  • 2017-11-13
  • 1970-01-01
  • 2012-02-17
  • 2019-11-22
  • 1970-01-01
相关资源
最近更新 更多