2010-05-09 2 views
4

Я хочу отобразить математику LaTeX в сообщениях gmail, которые я получаю, чтобы, например, $ \ mathbb P^2 $ отображался как хорошая формула. Теперь доступно несколько Javascripts (например, this one или MathJax, которые будут выполнять эту работу, мне просто нужно позвонить им в нужное время, чтобы манипулировать сообщением gmail.Запустить Javascript на теле сообщения Gmail

Я знаю, что это можно сделать в «базовый HTML» и «печатать». Возможно ли это сделать в стандартном представлении Gmail? Я попытался вставить вызов javascript прямо перед iframe «canvas_frame», но это не сработало.

Мое подозрение заключается в том, что манипулирование сообщением Gmail с помощью любого Javascript будет серьезным недостатком безопасности (подумайте обо всех вредоносных ссылках, которые можно вставить), и что Google делает все, чтобы это предотвратить. И поэтому ответ на мой вопрос, вероятно, «нет». право в этом?

Конечно, Google будет очень легко реализовать просмотр математики LaTeX и MathML, просто используя MathJax на своих серверах. Я сделал соответствующий запрос Gmail Lab, но ответа не получил, и, очевидно, никакого интереса со стороны Google.

Итак, опять же: возможно ли это обойтись без сотрудничества с Google на стороне клиента?

+0

Возможный дубликат: http://stackoverflow.com/questions/875478/greasemonkey-script-for-inserting-math-in-gmail – Geoff

+0

Я не принимаю texify как Правильный ответ, я хочу реальное решение. – saturn

ответ

6

Я думаю, что одним из лучших способов сделать это может быть внедрение изображений с использованием API графиков Google.

<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]

Если вы действительно должны использовать латексные и некоторые 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

Я протестировал его. Сначала я ничего не видел. После вставки некоторого предупреждения() появился «Hello World». Это должно быть вопросом времени. Однако мой javascript не работал над сообщением. Опять же, это должна быть проблема времени или порядка исполнения. Но отличная работа, во всяком случае! Это первый раз, когда скрипт что-то делает с сообщением Gmail. – saturn

+0

Я хочу запустить скрипты диаграммы google в теле сообщения gmail, что мне делать –

+0

1

Ну, уже есть сценарии greasemonkey, которые делают вещи GMail, насколько я знаю (например, this one). Является ли это возможной дырой в безопасности? Конечно, все, что вы делаете с исполняемым кодом, имеет такой риск. Google, похоже, движет ледниковыми скоростями на вещах, которые им не интересны. Они действительно функционируют на основе внутреннего отстаивания идей, поэтому лучший способ продвижения - найти симпатичных гуглеров, если вы хотите, чтобы они включили что-то в GMail. В противном случае придерживайтесь Greasemonkey, по крайней мере, у вас будет простой путь установки для других людей, которые хотели бы видеть ту же функциональность.

+0

Нет никаких сценариев greasemonkey, которые я знаю об этом * будут работать над телом сообщения. * – saturn

 Смежные вопросы

  • Нет связанных вопросов^_^