未捕获的 SyntaxError:'' 字符串文字包含未转义的换行符

Posted

技术标签:

【中文标题】未捕获的 SyntaxError:\'\' 字符串文字包含未转义的换行符【英文标题】:Uncaught SyntaxError: '' string literal contains an unescaped line break未捕获的 SyntaxError:'' 字符串文字包含未转义的换行符 【发布时间】:2021-05-18 22:10:25 【问题描述】:

我正在使用 Ruby on Rails。

create.js.erb

$('#my_re_ap').html('<%= recaptcha_element('signup')%>');

但我收到 Uncaught SyntaxError: '' string literal contains an unescaped line break 错误。

我的视图助手看起来像这样。我正在使用recaptcha gem。

帮手

  def recaptcha_element(event_name)
    if @show_checkbox_recaptcha
      content_tag :div, class: "pb-2" do
        recaptcha_tags
      end
    else
      recaptcha_v3(action: event_name, site_key: 'key123')
    end
  end

我的语法有什么问题?

【问题讨论】:

如果您的 Ruby 代码生成带有换行符的字符串,则会导致 javascript 语法无效。 (而且,显然,这种情况正在发生。) 【参考方案1】:

您可以通过 3 种方式解决它,使用模板文字或转义单引号字符

console.log(`<%= recaptcha_element('signup')%>`);

console.log("<%= recaptcha_element('signup')%>");

console.log('<%= recaptcha_element(\'signup\')%>');

【讨论】:

以上是关于未捕获的 SyntaxError:'' 字符串文字包含未转义的换行符的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 SyntaxError:JS 和 CSS 文件中的非法字符 U+001F

python:SyntaxError:EOL,同时扫描字符串文字

未捕获的 SyntaxError:意外的令牌导出 (Redux)

未捕获的 SyntaxError:意外的令牌导入 - Reactjs

未捕获的 SyntaxError:带有 JSON.parse 的意外标记

Javascript:未捕获的 SyntaxError:意外的令牌 <