2011-01-19 29 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图像,文件大小。