Захват событий на веб-странице - PullRequest
0 голосов
/ 13 июня 2011

Я запускаю веб-страницу с сервера, используя webrick. Как я могу захватить событие из веб-браузера? Я не хочу делать это через JavaScript, но я хочу получить ответ через webrick и обработать его в ruby, возможно, используя один из do_... методов. Если JavaScript минимально необходим, это нормально. Я не хочу перенаправлять на другую страницу. Я не знаю, что указать в значении события (например, onclick).

<input type=button onclick="..." value="Press Me">

Ответы [ 3 ]

0 голосов
/ 13 июня 2011

Похоже, вы описываете AJAX.Попробуйте:

link_to "target", {:controller => controller, :action => method, }, :remote => true

из этого SO ответа:

Куда исчезла функция link_to_function в Rails 3?

Редактировать: Извините, я предположил, что Railsкогда ты просил Руби.

0 голосов
/ 13 июня 2011

После борьбы с помощью этой страницы я, кажется, приблизился к тому, что хотел:

xxx.html

<input type="button" value="Click me" onclick="onclick('value to pass');" />

xxx.js

function onclick(v){
  e=new XMLHttpRequest();
  e.open("GET", "http://localhost:3000?t=0&"+v, true);
  e.onreadystatechange=function(){if (e.readyState==4 && e.status==200){
    // some code to rewrite if necessary
  };};
  e.send();
}

xxx.rb

class WEBrick::HTTPServlet::AbstractServlet
  def do_GET request, response
    # some code to process the request
    response.body = a_return_string_for_rewriting
    response.status = 200
  end
end
0 голосов
/ 13 июня 2011

AFAIK, Webrick - HTTP-сервер в Ruby. Чтобы связаться с HTTP-сервером из обработчика событий, вам нужно написать код JavaScript. Например:

<input type=button onclick="javascript:send(this);" value="Press Me">

А затем определите функцию send ():

function send(event) {
   // Create Ajax request to the server
}
...