【问题标题】:How do I modify Stumbleupon URL's and provide a direct link to the content page?如何修改 Stumbleupon URL 并提供指向内容页面的直接链接?
【发布时间】:2012-08-04 03:22:31
【问题描述】:

这个问题是针对所有狂热的绊脚石的,在那里...... 绊倒时,URL 被修改为如下所示。如您所见,所有原始内容都以 http://www.stumbleupon.com/su/... 然后是直接 URL。

如果我遇到有趣的事情,我喜欢通过复制 URL 并将其粘贴到任何需要的地方来分享。问题是,当任何人点击它时,它会为他们拉起绊脚石并将他们带到内容中。我宁愿只有直接链接。

http://www.stumbleupon.com/su/1NKFju/:10yM7NnNO:GEYExz6R/toti.jjsoft.hu/public8/nyar1779/a28.jpg
http://www.stumbleupon.com/su/1uGF9s/:11Sd-1n0R:GEYExz6R/www.popularmechanics.com/technology/how-to/home-theater/4342672/
http://www.stumbleupon.com/su/237YPB/:GdOWpKe.:GEYExz6R/nerdsguidetoreading.com/Nerds_Guide_to_Reading/Science_Fiction.html/
http://www.stumbleupon.com/su/2pkYws/:1f+I-KON5:GEYExz6R/www.wizards.com/dnd/images/wd_maps/FRposterLarge_150.jpg/
http://www.stumbleupon.com/su/1ceVWt/:1fdJgD$uT:GEYExz6R/www.psych.upenn.edu/~andrewbg/images/Bluebell-carpet-480.jpg/
http://www.stumbleupon.com/su/2DdDRI/:GvgBVfdV:M-wRpADk/www.nature.com/news/higgs-triumph-opens-up-field-of-dreams-1.10970/

如您所见,前面提到的大部分 stumble 行话的长度几乎相同。然而,第三个和最后一个短 1 个字符。

我想知道是否可以编写一个用户脚本来去除绊倒的东西并留下直接链接,每次我偶然发现一个新页面。

我想保留绊倒栏,但是当我到达我新绊倒的页面时,编辑 URL 并删除它,而不是真正重新加载页面。

【问题讨论】:

    标签: javascript url google-chrome userscripts stumbleupon


    【解决方案1】:

    由于 Stumbleupon URL 字段由固定数量的斜杠 (/) 分隔,因此您可以使用正则表达式来获取 URL,如下所示:

    var targURL = location.href.replace (
        /^.+stumbleupon\.com\/su\/\w+\/[^\/]+\/(.+?)\/?$/i
        , "http://$1"
    );
    

    Stack Overflow 不是(通常)脚本编写服务,但我毫不费力地修改了我现有的脚本之一,它似乎可以工作......

    更新: 以下是 Greasemonkey 脚本,因为这是问题最初指定的内容。要在 Chrome 中使用它,请安装 Tampermonkey 扩展程序。

    // ==UserScript==
    // @name     _Stumbleupon, add direct link to content page
    // @include  http://www.stumbleupon.com/su/*
    // @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
    // @grant    GM_addStyle
    // ==/UserScript==
    
    $("#tb-like").before ( '                                                    \
        <li id      = "gmDirectLinkDisp"                                        \
            class   = "tb-btn tb-hide-visitor"                                  \
            title   = "Click for the direct link to the target page, below."    \
        >                                                                       \
            <button>Direct link</button>                                        \
        </li>                                                                   \
    ' );
    
    $("#gmDirectLinkDisp button").click ( function () {
        var targURL = location.href.replace (
            /^.+stumbleupon\.com\/su\/\w+\/[^\/]+\/(.+?)\/?$/i
            , "http://$1"
        );
        window.prompt (
            "Press 'Ctrl+C' to copy to the clipboard; "
            + "then press `Enter` to close this dialog."
            , targURL
        );
    } );
    
    GM_addStyle ( "                             \
        #gmDirectLinkDisp {                     \
            float:              left;           \
        }                                       \
        #gmDirectLinkDisp button {              \
            padding:            0;              \
            margin-top:         10px;           \
        }                                       \
    " );
    

    【讨论】:

    • 感谢您的回复。我对 / 字符也有同样的想法,但我没有 javascript 的背景,所以我在其他方面苦苦挣扎。从它的外观来看,它看起来比我最初想象的要困难得多。我安装了脚本,对我来说它在 Windows 或 Ubuntu 上不起作用。 Chrome v. 21.0.1180.60
    • 这个问题被标记为“Greasemonkey”,意思是 Firefox,没有提到 Chrome。该脚本针对 Firefox 进行了调整,需要针对 Chrome 进行一些重写。
    • 好点。那是我的错。经过测试并在 Firefox 中运行。我感谢您的帮助。我会考虑为 chrome 修改它。应该是一个不错的小项目
    • 要在 Chrome 上工作,首先更改 (&lt;&gt;&lt;![CDATA[ ... 结构。你不能在 Chrome 中那样做多行字符串。然后,如果您使用 Chrome 的 Tampermonkey 扩展程序安装它,该脚本可能会起作用。 ...否则,只需将 jQuery 包含在 Chrome 用户脚本方式中(请参阅本网站上投票数最高的“用户脚本”问题)——如果您不想使用 Tampermonkey。如果我觉得很活泼,我可能会稍微翻译一下剧本(没有承诺)。
    【解决方案2】:

    使用 StumbleUpon Firefox 扩展程序,您将直接进入 URL,而不是它的框架版本。地址栏中显示的 URL 前面不会有 stumbleupon.com/su/xxxx。

    【讨论】:

    • 他没有使用 Firefox,他使用的是 Chrome。
    • 您会看一下吗,chrome 扩展的工作方式相同 =] 我很久以前就停止使用该栏了,因为它很笨重并且会减慢页面速度。从那以后似乎进步了很多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2016-11-23
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    相关资源
    最近更新 更多