2010-05-09 112 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