3

如果您没有登录,Quora 网站会模糊其大部分内容。解决此问题的一种方法是在其 URL 中添加参数“?share=1”。我认为通过 Greasemonkey 执行此操作的步骤是:

0/ 存储当前 URL

1/ 检查参数是否已经存在。如果是,请打破。

2/如果不是,添加参数。

3/ 使用更新的 URL 重新加载。

它类似于这个问题,但在我看来,这可以在没有正则表达式的情况下完成?我可能是错的。

这是我正在尝试使用的代码:

// ==UserScript==
// @name       Quora Share
// @namespace  kevmo.info
// @version    0.1
// @description  adds "?share=1" to URLS, i.e. let's you view full Quora content w/o being logged in.
// @include      https://*.quora.com/*
// @include      http://*quora.com/*
// @copyright  Creative Commons
// ==/UserScript==

var url = window.location.href;

if (url.indexOf("?share=1") !== -1){
    break;
}
else{
    url +="?share=1";
    window.location.replace(url)
}

注意:在“设置”中,我将脚本设置为在文档开始时运行。

我知道这种基本方法不适用于其他网站,但仅附加“?share = 1”应该适用于 Quora(请参阅:http ://blog.quora.com/Making-Sharing-Better )

当我访问http://www.quora.com/Animals/What-are-some-mind-blowing-facts-from-the-animal-kingdom时,页面不会重新加载带有添加参数的所需新 URL。

4

1 回答 1

2

元编辑:您正在使用“break;” 而不是循环结构。

    function share_redirect() {
    var new_url = false;

    if (window.location.hash.length === 0  && window.location.search.lenth === 0) {
         new_url = window.location.href+"?share=1"
    } else {

         if (window.location.search.indexOf('share=1') != -1) {
             return false; // already sharing
         }

         if (window.location.search.length && window.location.hash.length) {

             new_url = window.location.href.split('#')[0]+"&share=1"+window.location.hash;
         } else if (window.location.search.length === 0 && window.location.hash.length) {
             new_url = window.location.href.split('#')[0]+"?share=1"+window.location.hash;
         } else {
             new_url = window.location.href+"&share=1";
         }
    }
    if (new_url) {
        window.location = new_url;
    }
}
于 2013-03-06T22:20:15.757 回答