ruby 如何使用JS 变量?

发布于 2021-12-03 01:30:46 字数 727 浏览 807 评论 1

如下,accountParamter是 传递过来的值,我想在 <% %>中使用accountParamter,但是不可已直接使用,百度了一下都说ruby 中是不能直接使用js变量的,可是我觉的这是最基本的调用方式吧?难道真的不可已?ruby 中的变量  js 就可以通过过 var hh = <%= value %>调用呀。

function setNewValue(inputView,accountParamter) {
    <%
    defaultValue = accountParamter['_value']
    para = accountParamter['_path']
    %>
    <%if checkboxparamter.include?para%>
    <%if notcheckvalue.include?defaultValue%>
    inputView.checked = false;
    <% else%>
    inputView.checked = true;
    <%end%>
    <% else %>
    inputView.value='<%= defaultValue%>';
    <%end%>

  }



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷弦 2021-12-03 23:41:09

你要先知道,JS是跑在客户端浏览器上的,而ruby是跑在服务器上的。所以ruby不能直接用js的变量,反过来js也不能直接用ruby的变量。

你所说的js ”用“ ruby变量的方式,实际上是用ruby生成了js以后,传输到客户端由浏览器执行的。这是一种非常危险的做法,有XSS的风险,你可以把你代码里的 defaultValue设成 '; alert('XSS');' (单引号是字符串的内容)试试。

所以你要在ruby里获取js的内容,也只能让js把内容发到服务器上,比如ajax,比如提交网页,都能做到。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文