1

RubyのhamlテンプレートでHTML5localStorageを使用しようとしていますが、javaアプレットに渡すためにlocalStorage.getItem('myItem')の値を取得できる必要があります(コードが削除されています)。

- content_box("MyBox") do
  %object{:classid => "clsid:xxx"}
    %param{:name => "myItem", :value => "javascript:localStorage.getItem('myItem')"}
    %comment
      %EMBED{:myItem => "javascript:localStorage.getItem('myItem')"}
      %noembed

これを行う良い方法はありますか?私は次のようなことができます:

:javascript
  document.write("<param name='myItem' value="+localStorage.getItem('myItem')+">"

しかし、それはとても醜いです!

これは私が埋め込んでいるオブジェクトであり、document_readyの前に値が存在する必要があることに注意してください。オブジェクトを選択して、document_readyに値を追加できません。私が考えることができる他の唯一の方法は、事前に値をRuby変数にするためにajax送信を行うことですが、それは本当に不要です。

ありがとう!

4

2 に答える 2

2

時々、うまくいく唯一の方法は醜いです。

データがクライアントに保存されている場合、データを取得して別の形式でクライアントに直接返すためだけにサーバーリクエスト/ページ/アクションを作成することは不要であり、間違いなく醜いです。

javascriptを使用して<param>タグを追加します。

于 2012-04-16T20:25:54.700 に答える
1

とにかくオブジェクトがJavaScriptに依存している場合は、パラメータだけでなく、要素全体をJavaScriptで記述した方がよいでしょう。次に、ドキュメントの準備ができた状態でそれを行うことができます。

于 2012-04-16T23:12:00.803 に答える