1

我正在尝试将 HTML5 localStorage 与 Ruby haml 模板一起使用,并且需要能够获取 localStorage.getItem('myItem') 的值以传递给 java 小程序(代码被剥离):

- 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 上。我能想到的唯一另一种方法是提前进行 ajax 提交以使值成为 Ruby 变量,但这确实没有必要。

谢谢!

4

2 回答 2

2

有时唯一可行的方法是丑陋的。

如果您的数据存储在客户端上,那么创建服务器请求/页面/操作只是为了获取数据并以不同的形式将其直接传回客户端是不必要的,而且可以说更丑陋。

使用 javascript 添加<param>标签。

于 2012-04-16T20:25:54.700 回答
1

如果对象无论如何都依赖于 JavaScript,那么您最好只用 JavaScript 编写整个元素,而不仅仅是参数。然后你可以在准备好的文件上做。

于 2012-04-16T23:12:00.803 回答