2010-05-09 111 views
4

我想在我收到的Gmail邮件中显示LaTeX数学,以便例如$ \ mathbb P^2 $显示为一个很好的公式。现在,有几个Javascript可用(例如,this one,或MathJax可以完成这项工作,我只需要在正确的时间给他们打电话来操纵Gmail邮件。)在Gmail邮件正文上运行Javascript

我知道这是可行的“基本的HTML”和“打印”视图在标准的Gmail视图中可以做什么?我试图在“canvas_frame”iframe之前插入一个对javascript的调用,但是没有成功。

我怀疑是通过任何Javascript操纵Gmail邮件将是一个主要的安全漏洞(想想所有可以插入的恶意链接),Google会尽一切努力来防止这种情况,所以我的问题的答案可能是'不'。在这里?

当然,Google很容易通过在他们的服务器上使用MathJax来实现对LaTeX和MathML数学的查看。我做了相应的Gmail实验室请求,但没有回答,显然没有Google的兴趣。

所以,再次说明:这是否有可能在客户端没有Google的合作?

+0

可能重复:http://stackoverflow.com/questions/875478/greasemonkey-script-for-inserting-math-in-gmail – Geoff 2010-05-09 16:29:29

+0

我不会接受texify作为正确答案,我想要一个真正的解决方案。 – saturn 2010-05-09 18:06:46

回答

6

我认为一个更好的方法可能是使用Google Charts API嵌入图像。

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

了解详情:https://developers.google.com/chart/image/ [说明,API已正式弃用,但会工作,直到2015年4月]

如果你真的必须使用乳胶和一些JS库,我想一个办法可以完成这个是通过在iframe中注入脚本标签。 我希望这是一个很好的起点。

例子:

// ==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

我测试了它。起初,我什么也没看见。插入alert()后,出现了“Hello World”。这必须是一个时间问题。虽然我的JavaScript没有在消息上工作。再次,这必须是时间问题或执行顺序问题。但是好工作,无论如何!这是我第一次看到一个脚本正在处理Gmail邮件。 – saturn 2010-05-09 14:29:35

+0

我想在Gmail邮件正文中运行google图表脚本我应该怎么做 – 2013-09-27 04:40:47

+0

2013-09-27 04:42:54

1

那么,据我所知,已经有一些grepmonkey脚本可以处理GMail(例如this one)。这是一个可能的安全漏洞吗?当然,你用可执行代码做的任何事情都有这种风险。谷歌似乎对他们不感兴趣的事情感兴趣,他们确实似乎是基于内部倡导的想法而发挥作用,所以最好的方法是找到有同情心的谷歌,如果你想让他们把东西包含进GMail。否则,请坚持使用Greasemonkey,至少对于希望看到相同功能的其他人来说,您将拥有一条简单的安装路径。

+0

没有我知道的grepmonkey脚本会在邮件正文上工作。* – saturn 2010-05-09 13:26:36