Вопрос как передать параметр руби в js функцию


(Рамиль) #1

Добрый день.
Кто может подсказать, как передать параметр <%= @param1[‘CD’] %> к примеру в js функцию?

>               <script type="text/javascript">
>                 function runProgram()
>               {
>               var shell = new ActiveXObject("WScript.Shell");
>               var appWinMerge = "\"c:\\Program\\myproject.exe\"";
>               shell.Run(appWinMerge + " " + "-ParamID=param1");
>               }
>             </script>

Хочу передать значение переменной <%= @param1[‘CD’] %> в ParamID используя данную функцию js.


#2

Так и передайте.
var a = ‘<%= @param[‘CD’] %>’;


(Рамиль) #3

Пробовал, к сожалению так почему-то не видит параметра. Если таким же образом просто передаю текст, то всё видно.
Может как-то можно передать в функцию параметр, function runProgram(<%= @param[‘CD’] %>)?


#4

использую Haml, и такого рода конструкции в нем прокатывают:
:plain
<script>
var me = ‘#{@person.id.to_s}’;


(Рамиль) #5

Спасибо за ответ, таким методом параметр не выходит, в параметре получает пустое значение.


(Kvokka) #6

вопрос не корректен, тк не ясно, хочется подсуть переменную глобально на страницу в момент загрузки, или дернуть ее из js через ajax. если первое, то присунуть свои данные в дата атрибуты будет хорошо, если второе, то надо лепить отдельный экшен, который уже будет что-то обрабатывать


(Anton Melnik) #7

Передайте параметр куда-нибудь на страницу как атрибут какого-то блока, а затем вытащите оттуда параметр через JS.

Например:
<div id='activexParam' data-id='<% @param1['CD'] %>'> </div>

Затем через JS:
var parameter = document.getElementsById('activexParam').getAttribute('data-id');

Затем вызываете функцию с parameter аргументом.