2012-03-27 63 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的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是正確的擴展名。

有沒有什麼辦法可以讓用戶做這個工作,或者我必須要求他們改變他們的安全設置:「允許活動內容在我的電腦上運行」,如果他們有權限或者只是點擊每次都在旗幟上,如果他們不這樣做?

回答

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. 如果您只關心支持HTML5的IE9和更現代版本的瀏覽器,請使用以下文件開始您的文檔:

    <!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,並且可以加快速度。但是,如果您使用MathPlayer進行渲染,MOTW似乎無法正常工作。

+0

感謝您的回覆。選項3是不可能的,因爲我不能總是依靠互聯網連接。很好意識到選項2.我沒有意識到,直到你建議它纔會起作用。但是,我不認爲我可以使用它,因爲我需要支持IE8。選擇哪一個選項1.您可以擴展該選項的工作方式嗎?我嘗試刪除xml行,並在我的示例中將DOCTYPE更改爲html,並將您的兩行放在head標籤中,但w3驗證程序根本不喜歡這一行。我得到7個錯誤,1個警告 – user1296092 2012-04-02 17:25:10

+0

未來的注意事項:cdn.mathjax.org即將到期,請查看https://www.mathjax.org/cdn-shutting-down獲取遷移提示(並且可能會更新您的文章以供未來的讀者使用 – 2017-04-21 07:47:38