最近,Craigslist将在the results page上排序的搜索结果更改为“相关性”。它过去按“日期”排序。
结果页面上有单选按钮,但“相关性”按钮是默认的按钮。查看页面上的源代码,有一行显示:
<input type="hidden" name="sort" value="rel">
我认为,由于我对编码知识非常有限,因此value =“rel”值需要更改为“date”。我想使用Greasemonkey将默认排序更改回“date”。
我认为有很多像我这样的人发现“相关性”排序非常烦人。现在具有“相关性”的方式,搜索的所有结果都按日期分散。我希望排序的方式是从最新到最旧的降序。
可以使用Greasemonkey脚本完成吗?如果是这样的话?有人可以写一个脚本来完成这个吗?改变这一行真的很难吗?
如果有人可以提供帮助,我会非常感激。如果需要更多信息,我可以提供(我希望)。
我对任何编码的经验非常有限。我大部分时间都只是最终用户。
虽然我真的很喜欢,但我认为我不会在几天内学习javascript,更不用说几周了,能够写出我需要的东西。
答案 0 :(得分:1)
更改<input>
无济于事。您需要单击“最新”按钮。您将使用this answer中描述的技术以最强大的方式执行此操作。
但是,对于我看到的Craigslist搜索页面,例如this one,排序顺序按钮只是加载具有不同查询参数的页面的链接。 EG:
?sort=rel&areaID=229&catAbb=sss&query=tools
与
?sort=date&areaID=229&catAbb=sss&query=tools
分别针对 相关 与 最新 排序。
这意味着您可以使用URL rewriting获取所需的排序顺序,而无需将整个页面加载两次。
完整脚本如下所示:
// ==UserScript==
// @name Craigslist search, switch "Relevant" to "Date" sorting
// @match *://*.craigslist.org/search/*
// @run-at document-start
// @grant none
// ==/UserScript==
//--- Only fire if "sort=rel" is in the query string.
if ( /\bsort=rel\b/.test (window.location.search) ) {
var newSrch = window.location.search.replace (
/\bsort=rel\b/, "sort=date"
);
var newURL = window.location.protocol + "//"
+ window.location.host
+ window.location.pathname
+ newSrch
+ window.location.hash
;
/*-- replace() puts the good page in the history instead of the
bad page.
*/
window.location.replace (newURL);
}
答案 1 :(得分:1)
对于像我这样不熟悉如何使用 Greasemonkey 的人,如果这里是Firefox 26.0
的一步一步:/ p>
谢谢Brock
答案 2 :(得分:0)
我不得不删除+ window.location.hash以使其在chrome中工作(使用tampermonkey而不是greasemonkey)。也许那会帮助别人......
答案 3 :(得分:0)
我刚刚在浏览器中的网址末尾添加了&sort=date
,它可以正常工作!
原始网址为:
https://newyork.craigslist.org/search/mnh/crg?query=film&is_paid=all
添加&sort=date
后:
https://newyork.craigslist.org/search/mnh/crg?query=film&is_paid=all&sort=date