2010-05-09 4 views
4

Je veux afficher les maths LaTeX dans les messages Gmail que je reçois, de sorte que $ \ mathbb P^2 $ apparaisse comme une bonne formule. Maintenant, il y a plusieurs Javascripts disponibles (par exemple, this one, ou MathJax qui ferait l'affaire, j'ai juste besoin de les appeler au bon moment pour manipuler le message gmail.)Exécuter Javascript sur le corps d'un message Gmail

Je sais que c'est possible de faire en Vues "basic HTML" et "print" Est-il possible de faire dans la vue standard de Gmail? J'ai essayé d'insérer un appel au javascript juste avant le "canvas_frame" iframe, mais cela n'a pas fonctionné

Mes soupçons est-ce que manipuler un message Gmail par n'importe quel Javascript serait une faille de sécurité majeure (pensez à tous les liens malveillants que l'on pourrait insérer) et que Google fait tout pour l'empêcher. "La réponse à ma question est probablement" non ". droit dans ce?

Bien sûr, il serait très facile pour Google d'implémenter la visualisation de maths LaTeX et MathML simplement en utilisant MathJax sur leurs serveurs. J'ai fait la demande correspondante de Gmail Lab, mais aucune réponse, et aucun intérêt de Google apparemment.

Donc, encore une fois: est-ce possible de se passer de la coopération de Google, côté client?

+0

double possible: http://stackoverflow.com/questions/875478/greasemonkey-script-for-inserting-math-in-gmail – Geoff

+0

Je n'accepterais pas texify comme bonne réponse, je veux une vraie solution. – saturn

Répondre

6

Je pense que l'une des meilleures façons de le faire pourrait être d'intégrer des images en utilisant l'API Google Charts.

<img src="http://chart.apis.google.com/chart?cht=tx&chl=x=\frac{-b%20\pm%20\sqrt{b^2-4ac}}{2a}"> 

Pour en savoir plus: https://developers.google.com/chart/image/ [note, l'API a été officiellement désapprouvée, mais fonctionnera jusqu'en Avril 2015]

Si vous devez vraiment utiliser LaTeX et une bibliothèque js, je pense que d'une manière que vous pourriez accomplir ceci est en injectant une étiquette de script dans l'iframe. J'espère que c'est un bon point de départ.

Exemple:

// ==UserScript== 
// @name   Test Gmail Alterations 
// @version  1 
// @author   Justen 
// @description Test Alter Email 
// @include  https://mail.google.com/mail/* 
// @include  http://mail.google.com/mail/* 
// @license  GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html 
// ==/UserScript== 
(function GmailIframeInject() { 

    GM_log('Starting GMail iFrame Injection'); 
    var GmailCode = function() { 
     // Your code here; 
     // The ':pd' (div id) changes, so you might have to do some extra work 
     var mail = document.getElementById(':pd'); 
     mail.innerHTML = '<h1>Hello, World!</h1>'; 
    }; 

    var iframe = document.getElementById('canvas_frame'); 
    var doc = null; 
    if(iframe) { 
     GM_log('Got iFrame'); 
     doc = iframe.contentDocument; 
    } else { 
     GM_log('ERROR: Could not get iframe with id canvas_frame'); 
     return 
    } 

    if(doc) { 
     GM_log('Injecting GmailCode'); 
     var code = "(" + GmailCode + ")();" 
     doc.body.appendChild(doc.createElement('script')).innerHTML=code; 
    } else { 
     GM_log('ERROR: Could not get iframe content document'); 
     return; 
    } 
})(); 
+0

Je l'ai testé. Au début, je n'ai rien vu. Après avoir inséré un alert(), le "Hello World" est apparu. Cela doit être un problème de synchronisation. Mon javascript n'a pas fonctionné sur le message, cependant. Encore une fois, cela doit être une question de timing ou d'ordre d'exécution. Mais bon travail, de toute façon! C'est la première fois que je vois un script faire quelque chose à un message Gmail. – saturn

+0

Je veux exécuter les scripts google chart dans le corps du message gmail que dois-je faire –

+0

1

Eh bien, il existe déjà des scripts greasemonkey qui font des choses à GMail autant que je sache (comme this one). Est-ce un trou de sécurité possible? Bien sûr, tout ce que vous feriez avec le code exécutable a ce risque. Google semble déplacer une vitesse glaciale sur des choses qui ne les intéressent pas. Ils semblent vraiment fonctionner sur la base de la défense interne des idées, donc la meilleure façon d'avancer est d'aller trouver des googleurs sympathiques, si vous voulez qu'ils incluent quelque chose dans GMail. Sinon, respectez Greasemonkey, au moins vous aurez un chemin d'installation facile pour les autres personnes qui aimeraient voir la même fonctionnalité.

+0

Il n'y a pas de scripts greasemonkey que je connaisse qui * fonctionneraient sur le corps du message. * – saturn

Questions connexes