5

たとえば、 $\mathbb P^2$ が適切な式として表示されるように、受信した gmail メッセージに LaTeX 数学を表示したいと考えています。現在、利用可能な Javascript がいくつかあります (たとえば、この 1 つ、またはその仕事をする MathJax です。適切なタイミングでそれらを呼び出して、gmail メッセージを操作するだけです。

これが「基本的な HTML」ビューと「印刷」ビューで実行できることはわかっています。標準の Gmail ビューで行うことはできますか? 「canvas_frame」iframe の直前に JavaScript への呼び出しを挿入しようとしましたが、うまくいきませんでした。

私の疑いでは、Javascript で Gmail メッセージを操作することは重大なセキュリティ上の欠陥であり (挿入できるすべての悪意のあるリンクを考えてみてください)、Google はこれを防止するためにあらゆることを行っているのではないかと考えています。したがって、私の質問に対する答えはおそらく「いいえ」です。私はこれで正しいですか?

もちろん、Google がサーバーで MathJax を使用するだけで、LaTeX と MathML の数学の表示を実装するのは非常に簡単です。対応する Gmail Lab リクエストを送信しましたが、応答がなく、Google からの関心もないようです。

繰り返しになりますが、これはクライアント側で Google の協力なしに行うことは可能ですか?

4

2 に答える 2

6

これを行うためのより良い方法の 1 つは、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 月まで動作します]

本当に LaTeX といくつかの js ライブラリを使用する必要がある場合、これを実現する 1 つの方法は、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;
    }
})();
于 2010-05-09T04:29:03.160 に答える
1

まあ、私が知る限り、GMailに何かをするグリースモンキースクリプトがすでにあります(これのように)。これはセキュリティホールの可能性がありますか? もちろん、実行可能コードで行うことにはすべて、そのリスクがあります。Google は、彼らが興味を持っていないことに対して、氷河のような速度で動いているようです。彼らは実際に、アイデアの内部擁護に基づいて機能しているようです。そのため、GMail に何かを含めてほしい場合は、同情的な Google 社員を見つけることが最善の方法です。それ以外の場合は、Greasemonkey に固執してください。少なくとも、同じ機能を見たい他の人にとって簡単なインストール パスが得られます。

于 2010-05-09T04:14:32.113 に答える