【问题标题】:Getting "window is not defined" in ejs在ejs中获取“未定义窗口”
【发布时间】:2018-05-15 12:51:11
【问题描述】:

我正在尝试获取页面的当前 url,并将其作为值存储在名为 redirect 的隐藏输入字段中:

<input name="redirect" type="hidden" value="" />

这是一个 EJS 文件。所以如果我尝试这个,它会起作用:

<script type="text/javascript">
    document.getElementsByName("redirect")[0].value = window.location.href;
</script>

但如果我将其更改为以下内容,则不会出现window is not defined 的错误。

<input name="redirect" type="hidden" value="<%= window.location.href %>" />

我对 javascript 很陌生。有人可以帮我解决第二种方法吗?

【问题讨论】:

  • 我认为 EJS 是一种模板语言。我不希望构造文档的语言能够访问文档,因为文档在完成渲染之前不存在。
  • window 是全球性的。它应该(并且是)无处不在可用,所以这没有多大意义。请为您的问题创建一个Minimal, Complete, and Verifiable example
  • @DominicTobias:对不起,我没有明白你的意思
  • 那个 EJS 模板在哪里执行?在 Node 或浏览器中?
  • EJS 真的是一些 DOM 操作的好解决方案吗?在我看来,在构建文档/窗口时获取文档/窗口是一种不好的做法。这样做有什么理由吗?

标签: javascript ejs


【解决方案1】:

您好,您无权访问 window.location,因为您的渲染来自服务器,因此在服务器中您没有此位置,您需要使用 baseUrl 配置。

【讨论】:

    猜你喜欢
    • 2013-12-06
    • 2017-10-01
    • 2019-07-01
    • 2021-02-02
    • 2016-07-24
    • 2016-12-22
    • 2021-10-06
    • 2019-06-03
    • 2021-01-15
    相关资源
    最近更新 更多