呈现部分内容并转义bookmarklet的html/javascript
我正在尝试构建一个bookmarklet,它向localhost中的一个操作发出请求,并显示一个div,其中包含从localhost的js响应中获取的html。我可以很好地发出请求,但当js返回时,控制台中有“undefined”。我试着用binding.pry调试它,我发现内容没有正确评估。这就是我试图评估它的方式:呈现部分内容并转义bookmarklet的html/javascript,javascript,jquery,html,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Html,Ruby On Rails,Ruby On Rails 4,我正在尝试构建一个bookmarklet,它向localhost中的一个操作发出请求,并显示一个div,其中包含从localhost的js响应中获取的html。我可以很好地发出请求,但当js返回时,控制台中有“undefined”。我试着用binding.pry调试它,我发现内容没有正确评估。这就是我试图评估它的方式: content=“'events/bookmarklet').html_safe)%> 在binding.pry控制台中,我得到以下响应: content = eval("<
content=“'events/bookmarklet').html_safe)%>代码>
在binding.pry控制台中,我得到以下响应:
content = eval("<%= escape_javascript render(:partial => 'events/bookmarklet') %>");
SyntaxError: (eval):1: syntax error, unexpected '<'
<%= escape_javascript render(:partial => 'events/bookmarklet') %>
^
(eval):1: syntax error, unexpected ')', expecting end-of-input
<%= escape_javascript render(:partial => 'events/bookmarklet') %>
^
from (pry):12:in `eval'
content=eval(“'events/bookmarklet')%>”;
SyntaxError:(eval):1:语法错误,意外“如果我理解您想正确执行的操作,我不知道您为什么尝试eval
某些操作
如果您想通过javascript传递html,请使用json
和render_to_string
。以你为例:
# controller
def action_name
content =
render_to_string(
partial: 'events/bookmarklet',
formats: [:html], # always render html format, even if request wants json
layout: false # render only partial, without any layout
)
render json: { html: content }
end
您可以通过data.html
访问javascript中的内容。我正在尝试评估它是否有效。非常感谢:D。