[英]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.