繁体   English   中英

将JS变量注入haml模板

[英]Inject JS variable into a haml template

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

- 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变量,但这确实是不必要的。

谢谢!

有时唯一有效的方法是丑陋的。

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

使用javascript添加<param>标记。

如果对象依赖于JavaScript,你也可以用JavaScript而不仅仅是param来编写整个元素。 然后你可以在文件准备就绪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM