2013-10-06 30 views
-1

我試圖通過Google Mobilizer使我的一些頁面上的鏈接「動員起來」以這個偉大的服務。如何使用Google Mobilizer在瀏覽的頁面中調動所有鏈接?

EG:變更網址,像:

http://imgur.com/ 

到:

http://www.google.com/gwt/x?u=imgur.com 

谷歌動員減少任何URL的大小傳遞給它很大。圖像尺寸縮小。只有第一幀動畫GIF被渲染,並且基本上任何資源都大大減少。這極大地減少了低帶寬和高延遲連接的下載時間。

這可以通過附加組件或用戶腳本在Firefox中完成嗎?因此,網頁上的所有鏈接都以www.google.com/gwt/x?u=爲前綴?

a Chrome extension這實際上給你一個上下文菜單項來做到這一點。

回答

-1

這對我有用。它使用Google Mobilizer URL替換頁面上的所有鏈接。

if (!(
// Except when on ... 
      (/google.com\/search/.test(document.URL)) 
     || (/google.*\/gwt/.test(document.URL)) 
    )){  
    var link = document.body.getElementsByTagName("a"); 
    for (var i = 0; i < link.length; i++) { 
     if (!(
//Only for external links 
        (link[i].hostname == window.location.hostname) 
//And except for links that contain... 
       || (/google\./.test(link[i].href)) 
       || (/stack/.test(link[i].href)) 
       || (/reddit\./.test(link[i].href)) 
//And except for Null & Javascript-purpose links... 
       || (/\0/.test(link[i].href)) 
      )){ 
//Mobilize all links (append mobilizer URL) 
      link[i].href = link[i].href.replace("http","http://google.com/gwt/x?u=http") 
      } 
     } 
    } 
else if (/google.*\/gwt/.test(document.URL)){ 
// But when on Google Mobilizer site itself, ... 
    var link = document.body.getElementsByTagName("a") 
    for (var i = 0; i < link.length; i++) { 
     if ((/gwt\/x\/e\?/.test(link[i].href))) { 
//De-mobilize (just) "View page directly" link (because it unnecessarily prompts for redirection) 
      var inner = link[i].href.indexOf('http',1); 
      inner = inner>-1 ? link[i].href.substr(inner,link[i].href.indexOf('&',inner)-inner) : false; 
      if (inner) 
       link[i].href = inner; 
      } 
     } 
    } 

它還會檢查if鏈接是父網站域名,並不會改變他們。

+0

這只是*靜態*鏈接,而你的問題,談論了一點點,關於***圖像***和包括imgur.com在它的示例URL。這種方法也不適用於AJAX驅動的頁面。 –

1

是的,Firefox附加組件可以做到這一點,而且Firefox Greasemonkey腳本也應該可以做到這一點。

下面是它如何與火狐只的Greasemonkey腳本來完成大綱:

  1. 設置腳本的新<a><img>run at document-start and use MutationObservers to watch for the creation可能 元素。

  2. 當一個新的<a>,等元素被發現,它的重寫或src屬性href使用動員服務。

  3. 當發現新的<img>時,事情會變得有點棘手。 我認爲,如果您刪除<img>節點,它會停止加載該圖像(如果它已經啓動)。這需要進行測試,以及對圖像服務器的影響。

    如果仍然加載原始圖像,則放棄此方法並使用附加組件。或者,您可以使用AdBlock Plus阻止原始圖像。

    不管怎樣,在這種情況下,步驟是:

    1. 複製<img>節點的outerHTML
    2. 請注意<img>節點的父節點和節點相對於兄弟節點的位置。
    3. 刪除<img>節點。
    4. 修改src部分指向mobilizer服務。
    5. 創建一個新的<img>節點,其中舊節點是。
相關問題