2009-05-17 8 views
1

Je souhaite lire le contenu des messages Gmail et ajouter de la fantaisie aux liens. Voici quelques codes:Greasemonkey et Gmail - analyser le contenu des messages

unsafeWindow.gmonkey.load("1.0", function(gmail){ 
    gmail.registerViewChangeCallback(function(){ 
    if (gmail.getActiveViewType && gmail.getActiveViewType() == "cv") { 
     var viewElement = gmail.getActiveViewElement() 
     // Do things with viewElement 
    } 
    }) 
}) 

La détection des liens dans les objets dom pour les mails est la partie la plus facile. Le problème est que le registerViewChangeCallback s'exécute uniquement lorsque vous affichez un thread. Les messages volumineux verront la plupart de ses messages masqués, pour être chargés uniquement par une requête utilisateur. Je n'ai pas trouvé de méthode Gmail greasemonkey API pour cette action particulière (chargement d'un message individuel), c'est-à-dire quand j'ai besoin d'exécuter mon script.

Des suggestions?

Répondre

1

Comme vous le dites, la fonction registerViewChangeCallback() se déclenche uniquement lorsque l'utilisateur change sa vue par exemple. threads aux archives, etc

Ce que vous avez vraiment besoin est d'ajouter une fonction qui intercepte les post-backs de Gmail, puis modifie les liens. Je n'ai jamais essayé de le faire moi-même, mais this answer a un exemple de code pour vous. Lorsque Gmail a récupéré un nouveau message, il déclenche un événement readystatechange, que votre code peut intercepter. Vous pouvez ensuite modifier le contenu du message de la manière que vous souhaitez (bien que vous deviez attendre un moment pour permettre à gmail d'insérer le message en premier - pas sûr de celui-là).

+0

J'ai essayé de tracer des appels de fonction dans firebug afin que je puisse les corriger, mais je n'ai pas pu le faire à cause des milliers d'appels de fonctions que Gmail effectue. Déterminer quel appel AJAX à prendre dans devrait être beaucoup plus facile, cependant, je vais étudier la réponse à laquelle vous avez lié et voir ce que je peux trouver. –

0

Je pense que vous constaterez que certains messages sont chargés lorsqu'ils sont répertoriés dans le thread; d'où ton problème. Pourquoi ne pas simplement utiliser un style personnalisé de toute façon?

UserStyles FF plugin.

+0

Je viens de mettre à jour ma question pour plus de clarté; c'est exactement ce que j'ai découvert et ce que j'essaie de résoudre. Est-ce qu'un "style personnalisé" fait référence à une autre extension FF, comme alternative à greasemonkey? Comment cette extension résoudrait-elle le problème? –

+0

http://userstyles.org/ Je pensais que vous vouliez changer le look de Gmail d'une manière ou d'une autre; J'utiliserais 'Stylish' pour ça. –

+0

Ce n'est pas pour les regards, vraiment, il s'agit d'ajouter du comportement à certains liens. –

Questions connexes