使用以下代码,我得到图像的大小:
function getFileSize(img) {
GM_xmlhttpRequest({
url: img.src,
method: "HEAD",
onload: function(response) {
response.responseHeaders.match(/Content-Length: (\d+)/);
size = RegExp.$1;
if (size > maxS)
// If size > max. allowed size
markImage(img);
else if (img.height > maxH)
// If img.height > max. allowed height
markImage(img);
}
});
}
如您所见,上面的函数调用了 markImage:
function markImage(img) {
img.style.border = "7px solid #990099";
showDialog(); // This function shows a dialog
}
所以我想改变那些符合特定条件的图像的风格。
如果图像与 getFileSize 上的条件匹配,则正确显示在 markImage 上调用的对话框。然而,风格并不总是改变。
据我所知,脚本在 时完美运行size > maxS
,但在 时并不总是有效img.height > maxH
。实际上,如果img.height > maxH
,如果我刷新网站,脚本就可以工作,但在第一次尝试时它不会。
一方面,考虑到markImage被称为onload的事实,这似乎不是与同步相关的问题。此外,对话框在必须显示时正确显示。另一方面,我也尝试使用setAttribute更改样式,但没有任何区别。所以我不知道为什么这个“随机”失败。
在此先感谢您的帮助。