如何在没有内联脚本的情况下将 ruby 变量传递给 rails 中的 javascript
How do I pass ruby variables to javascript in rails without inline scripts
我的 rails 应用的内容安全策略不允许内联 Javascript。这使得很难将内容传递到 rails 应用程序,并在视图中呈现内联 javascript。
有没有办法将 rails 变量传递给 javascript 而无需内联 Javascript?
将您的 javascript 文件保存在 app/assets/javascripts 文件夹中
在您的视图文件中,将隐藏字段用于要传递给 javascript
的数据
在您的 javascript 文件中,使用
$("#name_of_hidden_field")
我最终使用了 HTML5 Data Attributes
我添加了一个 div
和 data-*
属性,如下所示:
<%= tag("div", class: 'hidden-user-information', data: {
intercom_app_id: ENV['INTERCOM_APP_ID'],
user_id: current_user.id,
user_name: current_user.profile.name,
user_email: current_user.email,
user_created_at: current_user.created_at.to_i
}) %>
并使用 jQuery,我在我的 javascript 中访问了这些:
$('div.hidden-user-information').data('intercom-app-id');
我的 rails 应用的内容安全策略不允许内联 Javascript。这使得很难将内容传递到 rails 应用程序,并在视图中呈现内联 javascript。
有没有办法将 rails 变量传递给 javascript 而无需内联 Javascript?
将您的 javascript 文件保存在 app/assets/javascripts 文件夹中
在您的视图文件中,将隐藏字段用于要传递给 javascript
的数据
在您的 javascript 文件中,使用
$("#name_of_hidden_field")
我最终使用了 HTML5 Data Attributes
我添加了一个 div
和 data-*
属性,如下所示:
<%= tag("div", class: 'hidden-user-information', data: {
intercom_app_id: ENV['INTERCOM_APP_ID'],
user_id: current_user.id,
user_name: current_user.profile.name,
user_email: current_user.email,
user_created_at: current_user.created_at.to_i
}) %>
并使用 jQuery,我在我的 javascript 中访问了这些:
$('div.hidden-user-information').data('intercom-app-id');