本文参考了 http://otnv.pixnet.net/blog/post/29073136
代码:
function readablizeBytes(bytes) { var s = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']; var e = Math.floor(Math.log(bytes)/Math.log(1024)); return (bytes/Math.pow(1024, Math.floor(e))).toFixed(2)+" "+s[e]; }
用法:
readablizeBytes(8589312); // return 8.19 MB
实例:
Firefox 扩展 DiB 的功能如下:
可以看出此扩展是以 Bytes 为单位的,不够友好。现在用本文的代码对源代码进行改动,达到文件大小智能显示的效果:
只须改动文件 扩展\chrome\content\overlay.js 即可
改动前:
var showDialogAddonDiB = { init: function() { if ("contentLength" in dialog.mLauncher) { var bytes = dialog.mLauncher.contentLength; var type = dialog.dialogElement("type"); if (bytes != -1) { type.value += " (" + bytes.toLocaleString() + " Bytes)"; type.setAttribute("tooltiptext", type.value); } } } }; dialog.mDialog.addEventListener("load", function() { showDialogAddonDiB.init(); }, false);
改动后:
var showDialogAddonDiB = { init: function() { if ("contentLength" in dialog.mLauncher) { var bytes = dialog.mLauncher.contentLength; var type = dialog.dialogElement("type"); if (bytes != -1) { type.value += " ( " + readablizeBytes(bytes).toLocaleString() + " )"; type.setAttribute("tooltiptext", type.value); } } function readablizeBytes(bytes) { var s = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']; var e = Math.floor(Math.log(bytes)/Math.log(1024)); return (bytes/Math.pow(1024, Math.floor(e))).toFixed(2)+" "+s[e]; } } }; dialog.mDialog.addEventListener("load", function() { showDialogAddonDiB.init(); }, false);