我一直在努力学习这几个小时,只是不得不放弃并恳求怜悯。
我正在编写一个与我的工作OWA(Outlook Web Access)交互的greasemonkey脚本,根本没什么好看的。
目标是查找并计算我的“收件箱”中存在图片(没有姓名或身份证)的次数。
这是我的简单测试失败,我当然希望我知道原因:
var ilist = document.images;
for(var i = 0; i < ilist.length; i++) {
if(ilist[i] == "msg-unrd.gif") {
// found the image
alert('Found new message image!');
}
}
目的是对这些“新消息”图像进行计数,并将它们放入将在页面标题中使用的变量中。
parent.document.title = "(..+UNREAD_COUNT+..) Inbox";
“收件箱”的来源以及我正在尝试检测和计算的邮件如下:
img alt="Message: Unread" src="8.1.393.1/themes/base/msg-unrd.gif"
我知道还有其他一些针对OWA编写的greasemonkey脚本,但是源代码已经改变,因为我尝试使用它们,所以它们也失败了。
希望你的假期很棒!
答案 0 :(得分:4)
我会这样做(你忘记了src
属性):
var images = document.getElementsByTagName('img');
var count = 0;
for (var i = 0; i < images.length; i++)
if (images[i].src.match(/msg-unrd\.gif$/))
count++;
...或者如果您使用Prototype JS:
var count = $$('img[src~=msg-unrd\.gif]').length; // Win!
答案 1 :(得分:1)
您需要将网址与图片元素的src
属性进行比较,而不是与整个图片元素本身进行比较:
String src = "msg-unrd.gif";
if (ilist[i].src.match(src + '$') == src) {
// ...
}
编辑它实际上应该结束指定的网址,我忽略了这一点。我改进了代码示例。
答案 2 :(得分:0)
document.images仍然很方便:
var count=0, images=document.images;
for(var i=0, L=images.length;i<L;i++){
if(images[i].src.indexOf('msg-unrd.gif')!=-1)count+=1;
}
答案 3 :(得分:0)
如果你想使用jquery,你可以在一行中完成它(尽管它在后端仍然做同样的工作)
$('img[src$=msg-unrd.gif]').size()