2011-01-19 84 views
2

我想要獲得javascript/greasemonkey提交按鈕的背景圖像的文件大小。試圖獲得背景圖像文件大小在greasemonkey

P.s.我不想重新加載頁面或對圖像進行新的調用。由於每個負載的圖像不同。

圖像沒有每次都不同,只有名稱和網址分別是:d
對此深感抱歉..:/

感謝所有,我解決我的問題的其餘部分自己:)

+1

你可以發表一些你試過的代碼嗎? – drudge 2011-01-19 18:56:25

+1

問題不明確。你真的想要按鈕控件的文件大小,還是你真的想要上傳文件的大小?前者可以使用瀏覽器工具(您使用的瀏覽器是?)。後者可以通過查看本地文件系統來獲得。如果兩者都不是,那麼使用通用汽車沒有意義,除非你試圖將這個腳本潛入其他人的機器中? – 2011-01-20 02:04:45

+1

我想要按鈕的背景圖像的文件大小。 (無需重新加載頁面。) – HiddenKnowledge 2011-01-21 12:30:35

回答

2
<script type="text/javascript"> 
    function filesize (url) { 
     // http://kevin.vanzonneveld.net 
     // + original by: Enrique Gonzalez 
     // +  input by: Jani Hartikainen 
     // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
     // + improved by: T. Wild 
     // %  note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain. 
     // %  note 1: Synchronous so may lock up browser, mainly here for study purposes. 
     // *  example 1: filesize('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); 
     // *  returns 1: '3' 

     var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 
     if (!req) {throw new Error('XMLHttpRequest not supported');} 

     req.open('HEAD', url, false); 
     req.send(null); 

     if (!req.getResponseHeader) { 
      try { 
       throw new Error('No getResponseHeader!'); 
      } catch (e){ 
       return false; 
      } 
     } else if (!req.getResponseHeader('Content-Length')) { 
      try { 
       throw new Error('No Content-Length!'); 
      } catch (e2){ 
       return false; 
      } 
     } else { 
      return req.getResponseHeader('Content-Length'); 
     } 
    } 
</script> 

<style type="text/css"> 
    input[type="submit"] { 
     background-image: url("images/button_submit.gif"); 
    } 
</style> 

<body> 
    <input type="submit" value="Submit"> 
</body> 

<script type="text/javascript"> 
    document.write(filesize($('input[type="submit"]').css("background-image").match(/url\(\"(.*)\"\)/)[1])); 
</script> 
1

「我不想重新加載頁面或對圖像進行新的調用,因爲圖像每次加載都不同。

如果沒有第二次調用服務器,就沒有辦法在JavaScript或Greasemonkey中獲取這些信息。您需要編寫自己的附加組件/擴展程序才能在第一次調用時以編程方式獲取。

但是,您現在可以看到background-image,filesize。只需右擊該頁面並選擇查看頁面信息(Firefox),然後單擊媒體選項卡。您也可以安裝Web Developer add-on。它可以顯示圖像信息,包括BG圖像,文件大小。