2012-03-27 2 views
0

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

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

Я провел некоторое исследование, и, похоже, одобренный Microsoft способ обойти это - добавить в документ «Знак Интернета» (MOTW). The Microsoft page on this topic утверждает, что он будет работать с XML-файлами:

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

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

<?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 - это правильное расширение.

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

ответ

0

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 documentation для получения дополнительной информации. Недостатком MathJax является то, что он медленнее других параметров и требует подключения к Интернету. Вы можете отложить его до MathPlayer (по умолчанию) или Firefox с помощью параметров конфигурации, и это ускоряет его. Тем не менее, MOTW не работает, если у вас есть MathPlayer.

+0

Благодарим за отзыв. Вариант 3 невозможен, потому что я не всегда могу полагаться на интернет-соединение. Хорошо бы знать вариант 2. Я не понимал, что это сработает, пока вы не предложите его. Однако я не думаю, что могу использовать его, потому что мне нужно будет поддерживать IE8. Что оставляет вариант 1. Можете ли вы рассказать о том, как этот вариант будет работать? Я попытался удалить строку xml и сменить DOCTYPE на html в моем примере и поместить ваши две строки в главный тег, но валидатор w3 совсем не понравился. Я получаю 7 ошибок, 1 предупреждение – user1296092

+0

Примечание из будущего: cdn.mathjax.org близится к концу своего срока, проверьте https://www.mathjax.org/cdn-shutting -down для советов по миграции (и, возможно, обновите свой пост для будущих читателей). –