【问题标题】:Remove an element from an HTML file?从 HTML 文件中删除元素?
【发布时间】:2015-04-28 04:24:43
【问题描述】:

我尝试使用localStorage,为此,我将json 文件发送给客户端,并使用该文件执行所有逻辑,但是因为它显示在html 中,所以我使用了这个技巧:

<script id="scr">
    var object = {value: {{ json_encode(temps) }} };
    localStorage.setItem("temps", JSON.stringify(object));
</script>
 ....
 some html
 ....
<script>
$( "#scr" ).remove();
</script>

json 被删除,但如果我执行“显示页面源”,则不会,

那么如何隐藏 json 文件,同时只向服务器发出一个请求?

【问题讨论】:

  • “查看源代码”工具显示页面加载时的样子。你无法控制它。
  • 所以只有 ajax 有很多请求,或者使用 html 中已有的内容制作本地存储?

标签: javascript json html local-storage


【解决方案1】:

我认为你隐藏div是不可能的,所有的浏览器都提供了源代码,并告诉我们浏览器是如何一步步解释它的。 并且 localStorage 总是可见的,你不能隐藏它

【讨论】:

  • 是的,还有来自chrome dev的ressources标签,但是由于数据不合理,我只是对初学者隐藏它,高级用户总是能找到它,因为它是一个普通的 http ...
【解决方案2】:

如果您试图确保用户看不到 JSON,则您无法将其发送给用户并将其存储在 localStorage 中,而用户如果愿意,则无​​法访问它。

但为了确保它不会出现在 html 源代码中,您始终可以向服务器发送 AJAX 请求,该服务器接收 JSON 并将其存储在 localStorage 中。这样它就不会出现在源代码中。

但正如我已经说过的,如果您想在客户端 JavaScript 中访问它,用户可以随时访问它,如果他们愿意的话。因此,如果 JSON 数据敏感,则不建议这样做。

【讨论】:

  • 在元素显示后保存到localStorage怎么样,这样服务器渲染html后就可以访问了,因为一开始我打算发送json,然后从中检索信息。
  • @Abdelouahab 我不太明白你的意思。您正在做的事情似乎正在工作,但是除了通过 AJAX 加载它之外,没有办法确保它不会出现在源代码中。
  • 我的意思是,在过去,我想保存到 json,然后从该 json 文件构建 html,但现在,我将做相反的事情,我将构建 html,然后从那个html,我会做本地存储
  • 您总是可以发送带有在服务器上设置的 cookie 的 JSON(确保它不是 HTTPOnly cookie),然后使用 javascript 读取 cookie 数据。然后它将不会显示在 HTML 源代码中。
  • 在这种情况下,我认为您尝试做的事情是不可能的。请记住,只要将 cookie 保存在本地存储中,您就可以随时使用 javascript 删除它。这样就不必将其发送回服务器。 (当然,除非服务器再次设置它)。
猜你喜欢
  • 2014-09-01
  • 2021-10-02
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多