Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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/61.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 ransack参数将页面滚动到结果表_Javascript_Ruby On Rails_Ransack - Fatal编程技术网

Javascript 使用Rails ransack参数将页面滚动到结果表

Javascript 使用Rails ransack参数将页面滚动到结果表,javascript,ruby-on-rails,ransack,Javascript,Ruby On Rails,Ransack,我有一个页面,上面有分类和分页,页面顶部有一般信息,底部的表格中有10项/页。如果用户单击分页或排序按钮,我会自动滚动到表格,跳过顶部区域 使用URLSearchParams,我可以跟踪分页按钮上的单击,但当用户单击其中一个排序按钮时,ransack添加了类似%5Bs%5D=description+asc的内容,我无法使用URLSearchParams跟踪它 常量url=`http://localhost:3000/articles`; 常数urlWithSorting=`http://loca

我有一个页面,上面有分类和分页,页面顶部有一般信息,底部的表格中有10项/页。如果用户单击分页或排序按钮,我会自动滚动到表格,跳过顶部区域

使用URLSearchParams,我可以跟踪分页按钮上的单击,但当用户单击其中一个排序按钮时,ransack添加了类似%5Bs%5D=description+asc的内容,我无法使用URLSearchParams跟踪它

常量url=`http://localhost:3000/articles`; 常数urlWithSorting=`http://localhost:3000/articles?q%5Bs%5D=started_at+描述`; 常量urlWithPageAndSorting=`http://localhost:3000/articles?page=1&q%5Bs%5D=started_at+描述`; const searchParams=新的URLSearchParamsurlWithPageAndSorting; //网址 const hasPageParams=searchParams.has'page';//错误的 const hasSortingParams=searchParams.has's';//错误的 //urlWithSorting const hasPageParams=searchParams.has'page';//错误的 const hasSortingParams=searchParams.has's';//错误的 //urlWithPageAndSorting const hasPageParams=searchParams.has'page';//符合事实的 const hasSortingParams=searchParams.has's';//错误的 如果hasPageParams | | hasSortingParams{ scroll0,$.js-article-table.position.top; }
有什么办法吗?谢谢

这些URL只是标准括号化查询的编码版本:

http://localhost:3000/articles?q%5Bs%5D=started_at+desc
http://localhost:3000/articles?q[s]=started_at+desc
如果您尝试打印出URLSearchParams实例,您将得到:

console.log([...searchParams].toString())
// q[s],started_at desc
所以你可以用

searchParams.has('q[s]')
另外,请注意,您不能将完整URL传递给构造函数,您必须在之前构建URL,并且只使用搜索部分:

searchParams = new URLSearchParams(new URL(urlWithPageAndSorting).search)

太好了,这就是我错过的,谢谢你的回答。