我正在为一家咖啡店开设订阅应用程序。现在订户可以使用他们的电话号码登录。在他们登录后,它会将他们引导到一个页面,向用户显示他们花了多少钱,访问次数等的一些统计数据。我的问题是这个。如果没有按下任何键或者没有在该页面上点击,有没有办法可以使页面重定向回主页?仅当用户在页面上没有操作时。我觉得这可能是一个Javascript的东西,但我不确定?如果您需要更多信息,请告诉我?谢谢!
def search
@subscriber = Subscriber.new
end
def visit
@subscriber = Subscriber.find_by_phone_number(params[:phone_number])
if @subscriber
@subscriber.visit ||= 0
@subscriber.visit += 1
@subscriber.save
render "visit"
end
end
答案 0 :(得分:3)
首先,你必须对你的意思更具体一点,没有采取行动"。以下是一些例子:
它可以是任何这些或许多其他事物的组合。
让我们说"没有行动"意思是"没有点击任何东西,也没有按任何键并且没有移动鼠标"。
在这种情况下,可以像这样开始超时:
var redirectTimeoutId = window.setTimeout(redirectToHomepage, 15000)
这会在15秒(15000毫秒)后调用函数redirectToHomepage
。
现在您想拥有该功能redirectToHomepage
:
function redirectToHomepage() {
window.location.href = '/home'; // or whatever your homepage would be
}
好的,但如果用户点击,您如何避免调用该函数? 好吧,你只需要注册一个事件处理程序,但是在捕获阶段,所以页面上的任何内容都不会取消你:
window.addEventListener('click keypress mousemove', function() {
window.clearTimeout(redirectTimeoutId)
}, true)