Ошибка «документ не определен» в файле ejs, который будет использоваться с res.render () в файле node.js? - PullRequest
0 голосов
/ 03 января 2019

У меня есть этот файл ejs, который должен быть отправлен в качестве ответа с помощью res.render () в node.js

<!DOCTYPE html>
<html>
<head>  
  <title>pilcit</title>
</head>
<body>
<% var btn = document.getElementById('btn');%>
<% btn.style.background="blue"; %>
<div class="pt-5">
<div class="container-fluid">
    <h1  style="color:blue;" align=center>Pilcit</h2>
    <h4 style="color:#369bf4" align="center">The online clipboard</h4>

     <div>

         <textarea  class="form-control mt-5" name="content" rows="12">
            <%= result.content %>
         </textarea>
         <input type="text" value="sdfdsfsdfsd"  id="foo">
         <button id="btn" data-clipboard-target="#foo" copy clip </button>


    </div>  
    <!--<input type="submit" value="Create Clip">-->

</div>

, но строка
`<%var btn = document.getElementById ('btn');%>

выдает мне эту ошибку

ReferenceError: /home/ubuntu/workspace/pilcit/views/show.ejs:34
32| </head>
33| <body>
 >> 34|     <% var btn = document.getElementById('btn');%>
35| <div class="pt-5">
36| 
37|     <div class="container-fluid">

document is not defined
at eval (eval at compile (/home/ubuntu/workspace/pilcit/node_modules/ejs/lib/ejs.js:618:12), <anonymous>:17:27)
at returnedFn (/home/ubuntu/workspace/pilcit/node_modules/ejs/lib/ejs.js:653:17)
at tryHandleCache (/home/ubuntu/workspace/pilcit/node_modules/ejs/lib/ejs.js:251:36)
at View.exports.renderFile [as engine] (/home/ubuntu/workspace/pilcit/node_modules/ejs/lib/ejs.js:482:10)
at View.render (/home/ubuntu/workspace/pilcit/node_modules/express/lib/view.js:135:8)
at tryRender (/home/ubuntu/workspace/pilcit/node_modules/express

Я не использую <% var btn = document.getElementById ('btn');%> чтобы изменить цвет фона btn, я хочу использовать его с буфером обмена js.Я использовал эту строку, чтобы проверить, работает ли встроенный JavaScript.

1 Ответ

0 голосов
/ 03 января 2019

Вы не можете использовать document внутри своих тегов ejs, потому что этот код выполняется на сервере. Вместо этого вы должны добавить тег script, который будет запускаться, как только страница будет загружена в браузер.

<script> var btn = document.getElementById('btn'); </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...