0

我有一个程序在用户计算机上创建 MathML 文档,我希望他们能够使用 Internet Explorer 打开。为此,您必须下载MathML 播放器。这很好用,但每次用户尝试打开文档时,他们都会看到一个横幅,上面写着:

为了帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。单击此处查看选项...

我已经做了一些研究,看来微软批准的解决方法是在文档中添加“网络标记”(MOTW)。 有关此主题的 Microsoft 页面声称它将与 xml 文件一起使用:

从 Microsoft Internet Explorer 6 for Windows XP Service Pack 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,但它确实出现在 Internet 区域中。当它以 .xhmtl 扩展名保存时,MOTW 不起作用,它会出现在本地区域中。但是,当您允许 ActiveX 运行时,它会正确显示。根据 W3 验证器(由于垃圾邮件限制,我不能包含链接),当文件以 .xhtml 保存时没有警告,但当文件以 .html 扩展名保存时,有一个警告。所以我相信 .xhtml 是正确的扩展名。

有什么方法可以为用户完成这项工作,或者我是否必须要求他们更改“允许活动内容在我的电脑上的文件中运行”的安全设置,如果他们有权限,或者只需点击横幅如果他们没有时间?

4

1 回答 1

0

MathPlayer 在 IE8 和更早版本中使用 MIME 过滤器将 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,这大大加快了速度。但是,如果你有 MathPlayer 渲染它,MOTW 似乎不起作用。

于 2012-03-28T18:34:48.890 回答