如何调用erb文件script标签定义的js函数?

How to call js functions defined in script tag of the erb file?

我有一个 PDF 布局 (views/layouts/pdf.html.erb):

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script src="https://cdn.tailwindcss.com"></script>
    <script>
      function sayHello() {
        return "HAAHAHAhAHAAH"
      }
    </script>
    <style>
    </style>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

我想在 app/views/invoices/pdf.html.erb 中的 p 标记内使用 sayHello() 函数,它嵌入在 layouts/pdf.html.erb

yield

我尝试以不同的方式调用 sayHello(),例如使用 <%= javascript: sayHello()%> 等。但没有任何效果。

我还尝试将 sayHello() 保存在单独的文件中,然后在 layouts/pdf.html.erb 中的 javascript_pack_tag 中引用它,这会导致不同的错误。

有什么方法可以在 html.erb 中访问该功能?

给你的段落一个 class 像这样:

<p class="p_class"></p>

然后放这个

<script>
  document.getElementsByClassName('p_class')[0].textContent = sayHello();
</script>

在您 app/views/invoices/pdf.html.erb 部分的底部。