试图获得背景图像文件大小在greasemonkey
问题描述:
我想要获得javascript/greasemonkey提交按钮的背景图像的文件大小。试图获得背景图像文件大小在greasemonkey
P.s.我不想重新加载页面或对图像进行新的调用。由于每个负载的图像不同。
图像没有每次都不同,只有名称和网址分别是:d
对此深感抱歉..:/
感谢所有,我解决我的问题的其余部分自己:)
答
<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>
答
“我不想重新加载页面或对图像进行新的调用,因为图像每次加载都不同。
如果没有第二次调用服务器,就没有办法在JavaScript或Greasemonkey中获取这些信息。您需要编写自己的附加组件/扩展程序才能在第一次调用时以编程方式获取。
但是,您现在可以看到background-image,filesize。只需右击该页面并选择查看页面信息(Firefox),然后单击媒体选项卡。您也可以安装Web Developer add-on。它可以显示图像信息,包括BG图像,文件大小。
你可以发表一些你试过的代码吗? – drudge 2011-01-19 18:56:25
问题不明确。你真的想要按钮控件的文件大小,还是你真的想要上传文件的大小?前者可以使用浏览器工具(您使用的浏览器是?)。后者可以通过查看本地文件系统来获得。如果两者都不是,那么使用通用汽车没有意义,除非你试图将这个脚本潜入其他人的机器中? – 2011-01-20 02:04:45
我想要按钮的背景图像的文件大小。 (无需重新加载页面。) – HiddenKnowledge 2011-01-21 12:30:35