Javascript 尝试在greasemonkey中获取背景图像文件大小
我想用javascript/greasemonkey获取提交按钮背景图像的文件大小 另外,我不想重新加载页面或对图像进行新调用。因为图像在每次加载时都是不同的 图像每次都不一样,只有名称和url是:DJavascript 尝试在greasemonkey中获取背景图像文件大小,javascript,css,greasemonkey,background-image,Javascript,Css,Greasemonkey,Background Image,我想用javascript/greasemonkey获取提交按钮背景图像的文件大小 另外,我不想重新加载页面或对图像进行新调用。因为图像在每次加载时都是不同的 图像每次都不一样,只有名称和url是:D 很抱歉/ 谢谢大家,我自己解决了剩下的问题:) 函数文件大小(url){ // http://kevin.vanzonneveld.net //+原件:恩里克·冈萨雷斯 //+输入人:Jani Hartikainen //+改进者:凯文·范·佐内维尔德(http://kevin.vanzonnev
很抱歉/ 谢谢大家,我自己解决了剩下的问题:)
函数文件大小(url){
// http://kevin.vanzonneveld.net
//+原件:恩里克·冈萨雷斯
//+输入人:Jani Hartikainen
//+改进者:凯文·范·佐内维尔德(http://kevin.vanzonneveld.net)
//+改进:T.Wild
//%1注意:此函数使用XmlHttpRequest,无法从其他域检索资源。
//%1注:同步so可能会锁定浏览器,主要用于学习目的。
//*示例1:文件大小('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
//*返回1:'3'
var req=this.window.ActiveXObject?新的ActiveXObject(“Microsoft.XMLHTTP”):新的XMLHttpRequest();
如果(!req){抛出新错误('XMLHttpRequest不受支持');}
请求打开('HEAD',url,false);
请求发送(空);
if(!req.getResponseHeader){
试一试{
抛出新错误('No getResponseHeader!');
}捕获(e){
返回false;
}
}else if(!req.getResponseHeader('Content-Length')){
试一试{
抛出新错误('无内容长度!');
}渔获物(e2){
返回false;
}
}否则{
返回请求getResponseHeader('Content-Length');
}
}
输入[type=“submit”]{
背景图片:url(“images/button_submit.gif”);
}
document.write(文件大小($('input[type=“submit”]).css(“背景图像”).match(/url\(\”(.*)\”\)/)[1]);
“我不想重新加载页面或对图像进行新调用。因为每次加载的图像都不同。”
如果不再次调用服务器,就无法在JavaScript或Greasemonkey中获取此信息。您需要编写自己的附加组件/扩展,以便在第一次调用时以编程方式获得该附加组件/扩展
不过,您现在可以看到背景图像、文件大小。只需右键单击页面,选择查看页面信息(Firefox),然后单击媒体选项卡
此外,您还可以安装。它可以显示图像信息,包括BG图像、文件大小。你能用你的尝试发布一些代码吗?问题不清楚。您是真的想要按钮控件的文件大小,还是真的想要上传的文件大小?前者可以使用浏览器工具(您使用的是什么浏览器?)。后者可以通过查看本地文件系统来实现。如果两者都没有,那么使用GM就没有意义了,除非你想把这个脚本偷偷带到别人的机器上?我想要按钮背景图像的文件大小。(无需重新加载页面)谢谢,这对我帮助很大:)这也帮助我找到了解决方案,可惜这是不可能的。
<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>