我帮助管理一个在线论坛,在这个论坛上我们限制签名的大小。目前,我们通过我编写的一个简单的 Greasemonkey 脚本对此进行了测试;我们用 <div>
包装所有签名,脚本会查找它们,然后测量 div 的高度和宽度。
脚本现在所做的就是确保签名位于特定的高度/宽度。我想开始自动测量签名内图像的文件大小,以便脚本可以自动标记在签名中包含大图像的用户。但是,我似乎无法找到一种方法来衡量页面上加载的图像的大小。我搜索并找到了 IE 的特殊属性 (element.fileSize),但我显然不能在我的 Greasemonkey 脚本中使用它。
有没有办法通过 JavaScript 在 Firefox 中找出图像的文件大小?
编辑:人们误解了这个问题。论坛本身不托管图片;我们托管人们输入的 BBCode 作为他们的签名。因此,例如,人们输入:
This is my signature, check out my [url=http://google.com]awesome website[/url]!
This image is cool! [img]http://image.gif[/img]
我希望能够通过 Greasemonkey 检查这些图像。我可以编写一个批处理脚本来扫描所有这些,但我只是想知道是否有办法扩充我当前的脚本。
最佳答案
如您所知,IE 支持图像的 fileSize 属性。在其他浏览器中没有这样的运气......但是,你应该能够修改这个脚本:
http://natbat.net/2008/Aug/27/addSizes/
它使用 JSON 读取文件的 HTTP header 并显示其实际文件大小。这应该可以帮助您防止人们上传大型动画 GIF。
关于获取尺寸:
var img = new Image();
theImage.src = "someimage.jpg";
actualwidth = theImage.width;
actualheight = theImage.height;
这当然是一种纯客户端方法,可以在服务器端进行最佳处理。
关于javascript - 如何确定 JavaScript 中的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126905/