捕获网页上的事件

时间:2011-06-13 04:13:50

标签: ruby events httpresponse webrick ruby-1.9

我正在使用webrick从服务器运行网页。如何从Web浏览器捕获事件?我不想通过JavaScript来做,但我希望通过webrick获得响应,并使用其中一个do_...方法在ruby中处理它。如果JavaScript是最低限度的需要,那没关系。我不想重定向到其他页面。 我不知道在事件的价值中放什么(比如onclick)。

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

3 个答案:

答案 0 :(得分:0)

AFAIK,Webrick是Ruby中的HTTP服务器。为了从事件处理程序与HTTP服务器通信,您需要编写一些JavaScript代码。例如:

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

然后定义send()函数:

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

答案 1 :(得分:0)

听起来你在描述ajax。尝试:

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

从这个SO回答:

Where did link_to_function disappear to in Rails 3?

编辑:对不起,当你要求Ruby时,我假设了Rails。

答案 2 :(得分:0)

经过努力,在this page的帮助下,我似乎已经接近了我的想法:

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