从 <script> </script> 访问 <% %> 中定义的变量

Access variable defined in <% %> from <script> </script>

我将变量 title 传递到我的 html 文档并像这样访问它:

<h2><%= title %></h2> 

如何访问 <script> 标签内的同一个变量? 我尝试了以下但它给了我一个错误:

<script>
    console.log(title);
</script>

未捕获的引用错误:标题未定义

这是因为变量在不同的范围内吗?

编辑: 我想在此 post 中保持简单,但根据答案,我意识到我应该提到我的脚本使用了外部文件:

<script src="/javascripts/script.js"></script>

在这个脚本中,我使用 jQuery 来处理一些东西,我需要那里的变量 title

由于模板的性质,您无法访问渲染输出中的模板变量。但是,您可以 render 同名的 javascript 变量,该变量设置为模板变量的文字值。例如:

<script>
  var title = <%- JSON.stringify(title) %>;
  console.log(title);
</script>

你必须做这样的事情 shown is this answer

<script>
  var title = <%- JSON.stringify(title) %>;
</script>

How can I access the same variable inside the <script> tag?

你不能。客户端上的程序 运行 无法访问服务器上程序 运行 中的变量。

由于您已经复制变量的值到页面的DOM中,您可以读取它从那里开始。

console.log(document.querySelector('title').firstChild.data);

我是这样定义的-

<body>
<h2 style = "visibility:hidden" id = "events"><%= events %></h2> 

<script>

function initMap (){

var list =document.getElementById('events').innerHTML ;
      console.log("list = ", list)
}
</script>