2

次のようなハイパーリンクに埋め込みたいJavascriptがあります。

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

_bookmarklet.html.erbというパーシャルを作成しました。これには、アプリ/アセット内のアセットを指すように動的に生成されるリンクを含む、JavaScriptが生成されます。現在のサーバー上のアセットを指す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 に答える