2013-04-23 2 views
3

Вопрос How do i accept MathML? уже объясняет, как обрабатывать выходные данные из Windows 7 и Windows 8 Math Input Panel с использованием собственного кода Windows.Как принять MathML из панели ввода Windows Math?

Можно ли сделать то же самое с любым веб-браузером, используя только JavaScript (то есть, не разрешено использование Silverlight или любого другого плагина)? Я понимаю, что вход MathML находится в буфере обмена, но объявлен как нетекстовый (несмотря на то, что это действительно application/mathml или более точно UTF-16LE encoded XML with MathML markup with a BOM at the start of the data). Моя цель - получить MathML как UTF-8 encoded text и вставить этот текст через TinyMCE. Полученный MathML позже будет отображаться MathJax, но может быть обработан сервером. Недостающая часть предназначена для извлечения правильных данных из буфера обмена. Поскольку TinyMCE и JavaScript (как я его использую), вы видите буфер обмена, он всегда пуст, когда он действительно содержит форматы, описанные в How do i accept MathML?.

Я бы предпочел поддерживать MSIE 10 и последние версии Firefox и Google Chrome , Однако в краткосрочной перспективе я был бы в порядке, поддерживая только один браузер, работающий в Windows 8. Я действительно очень хотел бы избежать любой зависимости от плагина даже для поддержки одного браузера, работающего в Windows 8.

Если кто-то может показать мне код для отображения MathML от Math Input Panel в alert(), используя только JavaScript (jquery и TinyMCE зависимости в порядке, если это поможет), я могу справиться с остальными.

+0

Что касается правильной цветовой гаммы, выбранной для вставки из буфера обмена, это невозможно сделать без браузера AddOn. Используете ли вы CLCL для проверки содержимого буфера обмена и его вкусов? – Thariama

+0

Я пробовал http://www.peterbuettner.de/develop/tools/clipview/ для проверки кливера. Кажется, что 'MathML' на самом деле закодирован в' UTF-16LE' с 'BOM', а не просто' UTF-8'. –

+0

этот инструмент достаточно хорош. +1 для вашего хорошего вопроса – Thariama

ответ

0

Доступ к буферу невозможен с помощью javascript на веб-странице из-за того, что javascript не может связаться с песочницей браузера. Что касается правильной цветовой схемы, выбранной для вставки из буфера обмена, это выглядит невозможным без браузера AddOn.

+1

После того, как API-интерфейс Clipboard (http://dev.w3.org/2006/webapi/clipops/clipops.html#processing-model) поддерживается по крайней мере одним браузером, это должно выполняться до тех пор, пока UA не решает не включать контент MathML в 'DataTransferItemList'. Google Chrome может его поддерживать: http://strd6.com/2011/09/html5-javascript-pasting-image-data-in-chrome/ –

+0

См. Также https://bugzilla.mozilla.org/show_bug.cgi?id = 407983 –

+0

Да, это не сработает для FF (наш главный браузер) – Thariama