Javascript Rails远程调用,响应重新加载页面并跳转到锚定
我有一种销毁方法,其中: 它通过链接和远程调用:true 删除后,我想告诉浏览器重定向到一个页面 然后将用户跳转到一个特定的锚点,这一点不起作用 代码如下所示:Javascript Rails远程调用,响应重新加载页面并跳转到锚定,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一种销毁方法,其中: 它通过链接和远程调用:true 删除后,我想告诉浏览器重定向到一个页面 然后将用户跳转到一个特定的锚点,这一点不起作用 代码如下所示: def destroy # code to delete objects respond_to do |format| format.js { render js: %(window.location.href = "/docs/#{@doc.id}") } end end 这项工作:将浏览器指向文档页面,例如/d
def destroy
# code to delete objects
respond_to do |format|
format.js { render js: %(window.location.href = "/docs/#{@doc.id}") }
end
end
这项工作:将浏览器指向文档页面,例如/docs/42
但我真的想把用户引导到文档页面,然后跳转到页面上的锚定位置
我从下面的方法开始,即创建类似/docs/42section_2的内容,但这不会重新加载页面
def destroy
# code to delete objects
respond_to do |format|
format.js { render js: %(window.location.href = "/docs/#{@doc.id}#section_#{@doc.section.id}") }
end
end
使用chromedev工具,javascript似乎可以正常运行。还尝试了各种方法:
窗口位置
window.location.replace
我错过了什么
更新:其他信息未包括在此之前澄清,特此致歉
假设我们在第/docs/42页:
销毁方法从引导模式中的按钮触发
单击按钮应该发送远程ajax调用以调用destroy
销毁执行
Javascript返回到浏览器,导致重定向到URL完成页面刷新到/docs/42,此时内容已刷新
最终目标是重定向到/docs/42section42跳转到锚定页面
那么到目前为止观察到的情况是:
表单/docs/42的URL生成正确的行为
表单/docs/42第21节的URL会产生意外行为
观察到的意外行为:
页面不刷新,因此未刷新的内容仍保留
在modal下面,我可以看到页面跳转到锚节_21
模态保持在页面上
你的代码看起来不错。它对我有用。您是否检查了ajax响应以查看是否返回了正确的javascript代码。类似于window.location.href=/docs/5section_3。如果URL具有正确的节Id,并且页面上有一个具有该Id的节section_1,这应该可以正常工作。当您当时点击URL/docs/42section_2时,如果元素包含带有section_2的Id,则浏览器将自动滚动到该元素。因此,请确保相同的ID存在于DOMI中,并面临类似的问题:js=>window.location='{something_url}'帮助meYup,锚点有效且存在。已尝试使用window.location和window.location.href。这两种方法在处理表单/docs/42时都有效,忽略了任何锚散列,但在处理表单/docs/42u 21节时失败。我补充了关于我最初遗漏的其他澄清信息。谢谢。是的,检查了ajax响应,并期望返回javascript。我添加了我最初遗漏的其他澄清信息。