Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails远程调用,响应重新加载页面并跳转到锚定_Javascript_Ruby On Rails - Fatal编程技术网

Javascript Rails远程调用,响应重新加载页面并跳转到锚定

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

我有一种销毁方法,其中:

它通过链接和远程调用:true 删除后,我想告诉浏览器重定向到一个页面 然后将用户跳转到一个特定的锚点,这一点不起作用 代码如下所示:

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。我添加了我最初遗漏的其他澄清信息。