2013-03-06 37 views
2

如果您未登錄,網站Quora會將其大部分內容弄髒。解決方法之一是在其URL中添加參數「?share = 1」。我認爲步驟通過的Greasemonkey這樣做是:如何向URL添加參數然後使用Greasemonkey重新加載頁面?

0 /藏匿當前URL

1 /檢查,看看是否參數已經存在。如果是,休息。

2 /如果沒有,則添加參數。

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

它與this question類似,但在我看來,這可以做到沒有正則表達式?我可能是錯的。

這是我想要使用的代碼:

// ==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) 
} 

注:在「設置」,我設置的腳本在文件開始運行。

我知道,這種基本做法不會對其他網站的工作,而只是附加應在Quora的工作(見:http://blog.quora.com/Making-Sharing-Better)「份額= 1?」

當我訪問http://www.quora.com/Animals/What-are-some-mind-blowing-facts-from-the-animal-kingdom,頁面不會使用添加的參數重新加載所需的新URL。

+0

您不希望僅將'?share = 1'粘貼到URL的末尾,因爲該URL可能已經具有URL參數和/或散列('#')。這樣做會破壞URL。 (如果沒有任何其他URL參數或散列,您的當前代碼將起作用。)使用與您鏈接的問題相同的方法。 – 2013-03-06 20:21:29

+0

我相信這會適用於Quora:http://blog.quora.com/Making-Sharing-Better – kevmo 2013-03-06 20:42:10

+0

那麼你有問題的腳本。它工作嗎?如果不是,它是如何失敗的?如果是的話,或者你還沒有嘗試過,爲什麼這個問題呢? ...最後,即使它現在可以工作,現在*,它會**在某些情況下或網站更改時失敗 - 出於我上面給出的原因。 ..沒有一個很好的理由不要重新發明輪子。鏈接的方法已經被一次又一次證明,並且考慮到了URL的結構。 – 2013-03-06 20:56:36

回答

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; 
    } 
} 
+1

條件的第一行有一個拼寫錯誤 - 長度的長短。無法更正至少需要6個字符。投了票。 – 2013-06-20 07:06:23

相關問題