捕获网页上的事件

发布于 2024-11-15 06:30:08 字数 295 浏览 4 评论 0原文

我正在使用 webrick 从服务器运行网页。如何从网络浏览器捕获事件?我不想通过 JavaScript 来完成此操作,但我想通过 webrick 获得响应,并在 ruby​​ 中处理它,也许使用 do_... 方法之一。如果最低限度需要 JavaScript,那也没关系。我不想重定向到不同的页面。 我不知道要在事件的值中放入什么(例如 onclick)。

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

I am running a web page from a server using webrick. How can I capture an event from the web browser? I do not want to do it through JavaScript, but I want to get a response through webrick, and process it in ruby, perhaps using one of the do_... methods. If JavaScript is minimally needed, that is okay. I do not want to redirect to a different page.
I do not know what to put in the value for an event (like onclick).

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

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

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

发布评论

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

评论(3

咋地 2024-11-22 06:30:08

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
}

AFAIK, Webrick is HTTP server in Ruby. In order to communicate with HTTP server from event handler, you'll need to write some JavaScript code. For example:

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

And then define send() function:

function send(event) {
   // Create Ajax request to the server
}
时光暖心i 2024-11-22 06:30:08

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

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

从这个答案:

link_to_function 消失到哪里在 Rails 3 中?

编辑:抱歉,当您要求使用 Ruby 时,我假设是 Rails。

Sounds like you are describing ajax. Try:

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

from this SO answer:

Where did link_to_function disappear to in Rails 3?

Edit: Sorry, I assumed Rails when you were asking for Ruby.

泼猴你往哪里跑 2024-11-22 06:30:08

经过一番努力,在此页面的帮助下,我似乎已经接近了我想要的想要:

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

After struggling, with the help of this page, I seem to have gotten close to what I wanted:

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