使用Greasemonkey修改Craigslist的默认搜索结果排序?

时间:2013-11-12 18:04:49

标签: javascript sorting greasemonkey craigslist

最近,Craigslist将在the results page上排序的搜索结果更改为“相关性”。它过去按“日期”排序。

结果页面上有单选按钮,但“相关性”按钮是默认的按钮。查看页面上的源代码,有一行显示:

<input type="hidden" name="sort" value="rel">

我认为,由于我对编码知识非常有限,因此value =“rel”值需要更改为“date”。我想使用Greasemonkey将默认排序更改回“date”。


我认为有很多像我这样的人发现“相关性”排序非常烦人。现在具有“相关性”的方式,搜索的所有结果都按日期分散。我希望排序的方式是从最新到最旧的降序。

可以使用Greasemonkey脚本完成吗?如果是这样的话?有人可以写一个脚本来完成这个吗?改变这一行真的很难吗?

如果有人可以提供帮助,我会非常感激。如果需要更多信息,我可以提供(我希望)。

我对任何编码的经验非常有限。我大部分时间都只是最终用户。

  • 我已经在互联网上发布了我的请求,但尚未提出答案。
  • 我用Google搜索了一个“类似”的脚本 修改以完成我需要的,但一直未能实现 有什么。
  • 我访问了用户脚本并经历了数十次 现有的脚本,以找到可以工作的东西 修改,找不到任何东西。
  • 我尝试了一些其他脚本 写入的用户脚本是为了做这样的事情而已 不同的网站,我无法让他们在Craigslist上工作。

虽然我真的很喜欢,但我认为我不会在几天内学习javascript,更不用说几周了,能够写出我需要的东西。

4 个答案:

答案 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的一步一步:

  1. 突出显示并复制上面的“完整脚本”,以“//”开头,以“}”结尾。
  2. 转到FF工具&gt;插件,搜索Greasemonkey,安装它并重新启动FF。
  3. 转到FF工具&gt; Greasemonkey&gt;新用户脚本,将其命名为“Craigslist Relevant” 单击“从剪贴板新建脚本”按钮
  4. 在弹出的窗口中单击“保存”并关闭窗口。
  5. 有关@grant丢失的消息,但当我去CL并进行搜索时,它有效!
  6. 谢谢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