MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-06-23, 16:51

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
文章發表於 : 2009-07-18, 12:19 
離線

註冊時間: 2005-09-25, 21:20
文章: 13
如何將圖片連結前加入proxy。

例如:

<img src="http://www123.pic.com/1.jpg>
<img src="http://www99.pic.com/2.jpg>

變成:

<img src="http://www.proxy.com/proxy.php?u=http://www123.pic.com/1.jpg>
<img src="http://www.proxy.com/proxy.php?u=http://www99.pic.com/2.jpg>

www後的那些數字是隨意的(1到3個位),不是必然的123或99,即是:[0-9]{1,3}。

煩請幫忙,謝謝!:)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-07-18, 19:13 
離線
[網站管理員]
頭像

註冊時間: 2006-11-22, 16:07
文章: 560
我想你應該會用吧?直接上原始碼,不存成.user.js上傳了。

代碼:
// ==UserScript==
// @author         Shyangs
// @name           圖片連結前加入proxy
// @description    圖片連結前加入http://www.proxy.com/proxy.php?u=
// @namespace      http://wiki.moztw.org/index.php/User:Shyangs
// @version        0.1
// @include        http://*.pic.com/*
// ==/UserScript==
//套用的網站請修改 @include
(function() {
var ImgsNum=document.images.length;//圖片計數
//圖片連結前加入http://www.proxy.com/proxy.php?u=
for(var i=0;i<ImgsNum;i++)
{
    document.images[i].src="http://www.proxy.com/proxy.php?u="+document.images[i].src;
}
})();

_________________


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-07-18, 23:23 
離線

註冊時間: 2005-09-25, 21:20
文章: 13
先謝謝你的回覆,但不好意思,我說得不清楚,可能使你誤會了。

我希望的是:先把www###.pic.com找出來,然後才加上proxy,不是把所的img tag的src都加上去(因為很多時只有一部份的圖片是這樣的);

另外有些時候,它不一定是圖片,有可能只是普通的連結,或者只是文字,那又該如何處理呢?

最後,順帶一問:那些online proxy,不一定"http://www.proxy.com/proxy.php?u=http://www123.pic.com/1.jpg"這形式,
也有可能是"http://www.proxy.com/http/www123.pic.com/1.jpg"這樣子的,所以可以的話,麻煩兩個版本的script也給我,行嗎?謝謝!


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-07-19, 13:26 
離線
[網站管理員]
頭像

註冊時間: 2006-11-22, 16:07
文章: 560
版本一 - 圖片
代碼:
(function() {
var pStr="http://www.proxy.com/proxy.php?u=";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』.jpg
var regex=/http:\/\/www[0-9]{1,3}\.pic\.com\/\w+\.jpg/;
var a=document.images;
var n=a.length;//圖片計數
for(var i=0;i<n;i++)
{
   //如果圖片連結匹配,圖片連結前加入pStr
   if(regex.test(a[i].src))
   {
       a[i].src=pStr+a[i].src;
    }
}
})();



版本一 - 連結
代碼:
(function() {
var pStr="http://www.proxy.com/proxy.php?u=";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』.jpg
var regex=/http:\/\/www[0-9]{1,3}\.pic\.com\/\w+\.jpg/;
var a=document.getElementsByTagName("a");
var n=a.length;//連結計數
for(var i=0;i<n;i++)
{
   //如果連結匹配,連結前加入pStr
   if(regex.test(a[i].href))
   {
       a[i].href=pStr+a[i].href;
    }
}
})();



版本二 - 圖片
代碼:
(function() {
var pStr="http://www.proxy.com/http/";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』.jpg
var regex=/http:\/\/www[0-9]{1,3}\.pic\.com\/\w+\.jpg/;
var a=document.images;
var n=a.length;//圖片計數
for(var i=0;i<n;i++)
{
   //如果圖片連結匹配,置換圖片連結
   if(regex.test(a[i].src))
   {
       a[i].src=a[i].src.replace("http://",pStr);
    }
}
})();



版本二 - 連結
代碼:
(function() {
var pStr="http://www.proxy.com/http/";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』.jpg
var regex=/http:\/\/www[0-9]{1,3}\.pic\.com\/\w+\.jpg/;
var a=document.getElementsByTagName("a");
var n=a.length;//連結計數
for(var i=0;i<n;i++)
{
   //如果連結匹配,置換連結
   if(regex.test(a[i].href))
   {
       a[i].href=a[i].href.replace("http://",pStr);
    }
}
})();


版本一 - 純文字
代碼:
(function() {
var pStr="http://www.proxy.com/proxy.php?u=";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』(非貪婪).jpg//g全部
var regex=/(http:\/\/www[0-9]{1,3}\.pic\.com\/\w+?\.jpg)/g;

var a=[];
//Node.TextNodeArray
function tna(o)
{   
   var o=o.childNodes;
   var n=o.length;
   for (var i=0;i<n;i++)
   {
      if(!!o[i]&&o[i].nodeType===3)//存在且為文字節點
      {
         a.push(o[i]);
      }
      else if (o[i].childNodes)//是否undefined
      {
         tna(o[i]);
      }
   }
   return a;
};

var text=tna(document.body);//body底下的所有文字節點
var n=a.length;//計數
for(var i=0;i<n;i++)
{
   if(regex.test(text[i].nodeValue))
   {
      //置換
      text[i].nodeValue=text[i].nodeValue.replace(regex,pStr+"$1");
   }
}
})();


版本二 - 純文字
代碼:
(function() {
var pStr="http://www.proxy.com/http/";
//建立正則,匹配http://www『1~3位數字』.pic.com/『至少一個英、數、_字元』(非貪婪).jpg//g全部
var regex=/http:\/\/(www[0-9]{1,3}\.pic\.com\/\w+?\.jpg)/g;

var a=[];
//Node.TextNodeArray
function tna(o)
{   
   var o=o.childNodes;
   var n=o.length;
   for (var i=0;i<n;i++)
   {
      if(!!o[i]&&o[i].nodeType===3)//存在且為文字節點
      {
         a.push(o[i]);
      }
      else if (o[i].childNodes)//是否undefined
      {
         tna(o[i]);
      }
   }
   return a;
};

var text=tna(document.body);//body底下的所有文字節點
var n=a.length;//計數
for(var i=0;i<n;i++)
{
   if(regex.test(text[i].nodeValue))
   {
      //置換
      text[i].nodeValue=text[i].nodeValue.replace(regex,pStr+"$1");
   }
}
})();

_________________


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-07-19, 14:10 
離線

註冊時間: 2005-09-25, 21:20
文章: 13
行了,非常感謝,解答得十分詳細,有勞了。 :D


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 5 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 20 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群