2

我有一个 Javascript,我想将它嵌入到这样的超链接中:

<a href="javascript:function() {...}();">

我创建了一个名为 _bookmarklet.html.erb 的部分,它生成 javascript,包括动态生成的指向 app/assets 中资产的链接。它不能是静态的,因为它创建了指向当前服务器上资产的 url,它必须是绝对的,因为在安装之后,书签可以在不同的 Web 主机上执行。

我的模板如下所示:

<a href="<%= render :partial => 'pages/bookmarklet' %>"

我遇到的问题是javascript中的“(双引号”)。是否有转义引号的机制?我怎样才能正确嵌入这个?在 Rails 中公开小书签的正确方法是什么?

4

2 回答 2

1

你有几个选择。您可以使用link_to助手为您执行转义:

link_to "Bookmarklet!", render(:partial => 'pages/bookmarklet')

或者通过以下方式手动转义节点的属性:

<a href="<%=h render :partial => 'pages/bookmarklet' %>"
于 2013-01-20T21:47:39.320 回答
0

几个 gem可以让你创建一个书签。无论如何要在 href 上转义和呈现 JavaScript,您应该将部分视为字符串:

<%= link_to "Bookmarklet", "#{render 'bookmarklet'}" %>

这里也是在没有任何 gem 的情况下在 rails 中创建书签的分步指南。

于 2014-03-09T15:12:54.140 回答