如何在我的视图中打印 JavaScript 代码?

Posted

技术标签:

【中文标题】如何在我的视图中打印 JavaScript 代码?【英文标题】:How to print JavaScript code in my view? 【发布时间】:2012-07-31 09:30:30 【问题描述】:

我需要为我的用户提供 js 代码,所以我有文本区域:

  <%=  text_area_tag 'body',  "//<script>...</script>"%>

我无法让它工作。我知道如何使用控制器中的变量来做到这一点:

      @payKey = @xml["payKey"].to_s()
      "#@payKey"

编辑。全文打印:

    <script>var _p_g=id:@website.id;</script>
   <script src="..."></script>

并在视图中打印,但给了我错误:

   E:/myapp/myapp_prev/myapp/app/controllers/websites_controller.rb:12: unknown regexp option - j
   E:/myapp/myapp_prev/myapp/app/controllers/websites_controller.rb:12: syntax error, unexpected tSTRING_BEG, expecting keyword_end
   <></script>"
                                               ^

那么有什么更好的方法来解决这个问题呢?

【问题讨论】:

【参考方案1】:

问题似乎是您将双引号放在其他引号内,导致语法错误。

试试这个:

 <%=  text_area_tag 'body',  '<script src="//cdn.printitgreen.com/js/embedded.js"></script>'%>

【讨论】:

你能帮我解决这个问题吗?我需要打印变量值:'&lt;script&gt;var _p_g=id:#@website.id;&gt;&lt;/script&gt;' 这只打印#@website.id,但我需要它的值。 我需要用双引号吗? 好的,你可以使用escape_javascript助手转义双引号:"&lt;script&gt;var _p_g=id:#escape_javascript(@website.id);&gt;&lt;/script&gt;" 试试这个:"&lt;script&gt;var _p_g=id:@website.id;&lt;/script&gt;&lt;script src=\"...\"&gt;&lt;/script&gt;" 在多余的双引号前加上一个反斜杠,而不是转义 id。 不报错,也不打印website.id值。

以上是关于如何在我的视图中打印 JavaScript 代码?的主要内容,如果未能解决你的问题,请参考以下文章