Использование знака сети с MathML - PullRequest
0 голосов
/ 27 марта 2012

У меня есть программа, которая создает документы MathML на компьютерах пользователей, которые я хотел бы, чтобы они могли открывать с помощью Internet Explorer.Для этого вам необходимо скачать MathML player .Это работает нормально, но каждый раз, когда пользователь пытается открыть документ, ему показывается баннер с надписью:

Чтобы защитить вашу безопасность, Internet Explorer ограничил эту веб-страницу запуском сценариев или элементов управления ActiveX, которыеможет получить доступ к вашему компьютеру.Нажмите здесь, чтобы узнать варианты ...

Я провел некоторое исследование, и, похоже, одобренный Microsoft способ обойти это - добавить "Знак сети" (MOTW) к документу. Страница Microsoft по этой теме утверждает, что она будет работать с файлами XML:

Начиная с Microsoft Internet Explorer 6 для Windows XP с пакетом обновления 2 (SP2), вы также можете добавитькомментарий к составным файлам HTML (MHT) и файлам XML.

Однако для правильного отображения разметки mathml необходимо использовать файл .xhtml.Вот пример файла:

<?xml version="1.0" encoding="utf-8"?>
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">

<html>
  <head>
    <title>A Mark of the Web Example.</title>
  </head>
  <body>
     <p>Hello, World</p>
<math><msup><mi>f</mi><mi>2</mi></msup></math>
  </body>
</html>

Когда он сохраняется с расширением .html, он не отображает MathML правильно, но он появляется в зоне Интернета.Когда оно сохраняется с расширением .xhmtl, MOTW не работает и появляется в локальной зоне.Тем не менее, когда вы разрешите ActiveX для запуска, он будет отображаться правильно.Согласно валидатору W3 (я не могу включить ссылку из-за спама), когда файл сохраняется с расширением .xhtml, предупреждений нет, но при сохранении с расширением .html есть одно предупреждение.Поэтому я уверен, что .xhtml является правильным расширением.

Можно ли как-нибудь сделать эту работу для пользователя, или мне придется требовать от них изменения настроек безопасности для «Разрешить запуск активного содержимого»в файлах на «Моем компьютере», если у них есть разрешения, или просто нажимайте на баннер каждый раз, если у них нет?

1 Ответ

0 голосов
/ 28 марта 2012

MathPlayer использует фильтр MIME в IE8 и более ранних версиях для преобразования XHTML в HTML, потому что IE не знает о HTML. Хотя фильтр MIME не удаляет комментарии, возможно, что-то происходит в процессе. Однако фильтр MIME не работает для IE9, потому что IE9 понимает XHTML. Но MOTW там все еще не работает.

У вас есть три варианта:

  1. Если вы заботитесь только о том, чтобы пользователи видели ваш результат в IE, вы можете сгенерировать HTML4 и включить в заголовок документа следующее:

    <object id="MathPlayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>
    <?import namespace="m" implementation="#MathPlayer" ?>
    

    Вам все еще нужно MOTW

  2. Если вы заботитесь только о IE9 и более современных версиях браузеров, поддерживающих HTML5, начните документ с:

    <!doctype html>
    

    , который говорит, что это документ HTML5. Это будет работать для Firefox и IE9. В IE9 кажется, что MOTW в этом случае не нужен.

  3. Если вы хотите что-то, что работает во всех браузерах, используйте MathJax . Чтобы использовать MathJax, добавьте строку вроде

    <script type="text/javascript"
            src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=MML_HTMLorMML">
    </script>
    

    в заголовке вашего документа. Есть много вариантов конфигурации MathJax. См. MathJax документацию для получения дополнительной информации. Недостатком MathJax является то, что он медленнее, чем другие опции, и требует подключения к Интернету. Вы можете отложить его до MathPlayer (по умолчанию) или Firefox через параметры конфигурации, и это значительно ускоряет его. Однако MOTW, похоже, не работает, если у вас есть MathPlayer для его рендеринга.

...