Avatar billede thesurfer Nybegynder
05. november 2005 - 22:31 Der er 1 kommentar og
1 løsning

Marker dubletter i Yahoo! Mail via sortering

Jeg har lavet noget kode, som skulle finde og markere dubletter, i den mappe man har valgt, hos Yahoo! Mail.

Koden afvikles via en bookmark eller en knap (button) på en værktøjslinie (toolbar).

Scriptet er til private brug, og vil kun blive brugt i browseren Opera (lokalt).

Instruktioner:
1) Tilføj et bookmark eller en knap (button) til en værktøjslinie (toolbar).
2) I bookmarket's adresse-felt indsættes (uden ""): "java script:INDSÆST-KODEN-HER;void(0)"
  Det nemmeste er at skrive (uden "") "java script:;void(0)" og derefter indsætte koden, i stedet for "INDSÆST-KODEN-HER".
3) Åben Yahoo! Mail (kan sikkert også bruges med andre mailsystemer).
4) Vælg en mappe, med en masse (masse = 2+) mails, med samme emne/subject (bogstavligt). F.eks. mails fra eksperten.dk ("nyt indlæg").
5) Sorter mappen efter emne/subject, og sortering skal være faldende (?), dvs "nyeste øverst"-sortering.
6) Aktiver scriptet (klik på bookmark eller knap).

Nu skulle den gerne markere alle dubletterne i mappe. Se lige om den markere de rigtige, og ikke andre end dem.

Jeg har en mappe til indlæg fra eksperten.dk. I denne mappe virker scriptet fint nok.
Men den gør det forkert i f.eks. "Sent"-mappen (afsendte mails). Den markerer godt nok dem der skal markeres, men den markerer også andre.
Det ligner at den siger "det ligner" i stedet for "det er"..


Selve koden:

if (document.messageList) { /* koden skal kun afvikles, hvis formen eksisterer */
    var c = new Array(); /* opret et nyt array kaldet "c" (for "checkbox") */
    var locCheckbox = 0; /* positionen (location) af den første checkbox, i elementlisten */

    e = document.messageList.elements; /* "e" indeholder elementerne (samlingen) */
    for (i=0;i<e.length;i++) /* kør en loop fra 0 og til antallet af elementer */
    {
        if (c.length == 0) { locCheckbox++; } /* så længe array'en er tom, læg 1 til positionen i elementlisten */
        if (e[i].type == "checkbox") { c[i] = e[i]; } /* hvis det nuværende element er en checkbox, tilføj den til arrayen */
    }
    locCheckbox--;  /* træk 1 position fra, da vi ellers har 1 for meget */

    var cur_subj = ""; /* opret variablen, der skal indeholde det nuværende emne/subject */
    var old_subj = ""; /* opret variablen, der skal indeholde emnet/subject, der skal sammenlignes med */
    var array_mail = document.body.innerHTML.split('name="Mid"'); /* hent HTML indeholdet af siden/body, og split det ved name="Mid" */
    for(i=1; i< array_mail.length; i++) { /* start en loop fra 0 og til længden af "indhold"-arrayen (mailene) */
        cur_subj = array_mail[i]; /* læg den nuværende mail (HTML kode) over i variablen curr_subj */
        cur_subj = cur_subj.substring(cur_subj.indexOf("&box")); /* hop til positionen af "&box" i HTML koden */
        cur_subj = cur_subj.substring(cur_subj.indexOf(">") + 1); /* hop til position af ">" + 1. Her starter emnet */
        cur_subj = cur_subj.replace("\n                            ", ""); /* Fjern linieskift ("\n") og mellemrum der står før emnet, i HTML koden */
        cur_subj = cur_subj.substring(0, cur_subj.indexOf("\n")); /* reducer strengen, indtil den næste linieskift */

        if (old_subj == cur_subj) { /* check om det nuævrende emne er det samme som det gamle */
            c[i+locCheckbox].click(); /* de er ens: marker den nuværende mail */
        } else {
            old_subj = cur_subj; /* de er forskellige: sæt den gamle til at være den nuværende */
        }
    }
}
Avatar billede thesurfer Nybegynder
05. april 2006 - 22:37 #1
.
Avatar billede thesurfer Nybegynder
07. april 2006 - 23:14 #2
Ok, så lukker jeg..

/theSurfer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester