有谁能帮我解决一个小问题吗?实际上,我想从controller action方法调用一些javascript函数。我已经编写了一些代码,但它不起作用。由于我对ror完全不熟悉,可能是我在某个地方犯了错误。请检查下面的代码片段并修改它们,以便成功运行这些代码。
我的代码片段如下。
视图/users/index.html.erb:
<center>
<h1>....Testing...</h1>
<p>
<a href="/users/browser"><button type="button">Check Browser</button></a>
</p>
<p>
<a href="/users/time"><button type="button">Check Time</button></a>
</p>
</center>
控制器/用户控制器.rb:
class UsersController < ApplicationController
def index
end
def browser
respond_to do |format|
format.js{render :js => "my_browser();"}
end
end
def time
respond_to do |format|
format.js{render :js => "my_time();"}
end
end
end
应用程序.js:
function my_browser(){
console.log('my browser function');
var objOffsetVersion;
if (objOffsetVersion=navigator.userAgent("chrome") != -1) {
objOffsetVersion="chrome"
};
alert(objOffsetVersion) ;
}
function my_time(){
var d = new Date();
var currtime = d.getHours() * 100 + d.getMinutes();
alert(currtime);
}
路线.rb
Jscript::Application.routes.draw do
root :to => "users#index"
get "users/browser" => "users#browser"
get "users/time" => "users#time"
end
请帮帮我…提前谢谢。
最佳答案
尝试将链接更改为使用js格式,因为您特别告诉控制器通过format.js块处理js:
<center>
<h1>....Testing...</h1>
<p>
<a href="/users/browser.js"><button type="button">Check Browser</button></a>
</p>
<p>
<a href="/users/time.js"><button type="button">Check Time</button></a>
</p>
</center>
作为替代方案,您可以告诉rails始终在控制器中呈现所有格式的js:
class UsersController < ApplicationController
def index
end
def browser
render :js => "my_browser();"
end
def time
render :js => "my_time();"
end
end
希望这能提供一些帮助。
关于javascript - 如何使用ROR从 Controller 操作中调用javascript函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28404547/