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