2014-01-16 78 views
4

MathJax渲染HTML輸入字段我試圖包括HTML輸入字段,例如:在MATHML

<input id="txtBox" type="text" size="1" style="text-align: center"> 

在MATHML方程。當我最初在Firefox本地創建和測試它們時,一切看起來都不錯(本地呈現內容)。但是,現在我已經將它上傳到我們的網站,該網站使用mathjax 2.01來呈現內容,在輸入框應該是處處都會出現「未知節點類型:輸入」錯誤。我目前有包裝箱

<annotation> 

標籤描述在另一篇文章在這裏但是我仍然收到相同的錯誤。

<script type="math/mml"> 
<math> 
    <mstyle displaystyle="true"> 
    <msup> 
     <mi>x</mi> 
     <semantics> 
     <annotation-xml encoding="application/xhtml+xml"> 
     <input xmlns="http://www.w3.org/1999/xhtml" style="text-align:right" type="text" size="2" name="n" /></input> 
    </annotation-xml> 
    </semantics> 
</msup> 
<mo>+</mo> 
<semantics> 
    <annotation-xml encoding="application/xhtml+xml"> 
    <input xmlns="http://www.w3.org/1999/xhtml" type="text" size="2" name="b" /></input> 
    </annotation-xml> 
</semantics> 
</mstyle> 
</math> 
</script> 
+0

如果需要更多與該問題相關的信息,我可以根據需要提供一些圖片等。目前我仍無法解決此問題並尋求幫助。 – Glynbeard

回答

5

MathML3.0規範不提供直接嵌入到MathML中的HTML元素。例如,HTML5擴展了定義以允許MathML中的標記元素中的HTML標記,例如<mtext>。然而,MathJax是在HTML5完成之前開發的,並且遵循MathML3.0規範,所以通常不允許使用HTML標籤。

但是,可以使用<semantics><annotation-xml>元素在MathML中包含HTML。請注意,<annotation><annotation-xml>只能顯示爲<semantics>的子項,因此您需要兩者。而且,<annotation>標籤的主體應該是純文本,而不是HTML標籤,所以,包括HTML,你必須使用<annotation-xml><annotation>。最後,你需要提供的<annotation-xml>標籤encoding屬性和註釋的內容需要一個xmlns屬性,以確保它在波普爾命名空間解析。

這裏是在Firefox與MathJax以及本地MATHML工作的例子:

<script type="math/mml"> 
<math> 
    <mstyle displaystyle="true"> 
    <msup> 
     <mi>x</mi> 
     <semantics> 
     <annotation-xml encoding="application/xhtml+xml"> 
      <input xmlns="http://www.w3.org/1999/xhtml" style="text-align:right" type="text" size="2" name="n" /> 
     </annotation-xml> 
     </semantics> 
    </msup> 
    <mo>+</mo> 
    <semantics> 
     <annotation-xml encoding="application/xhtml+xml"> 
     <input xmlns="http://www.w3.org/1999/xhtml" type="text" size="2" name="b" /> 
     </annotation-xml> 
    </semantics> 
    </mstyle> 
</math> 
</script> 

我們希望改善MathJax的未來版本的情況,但現在這是唯一的選擇。我希望這對你有用。

+0

感謝您的協助!這是在Firefox,甚至Internet Explorer的正常使用,但是,它給了我在Chrome以下錯誤: 錯誤解析MATHML:在378欄第1行錯誤:打開和結束標記不匹配:輸入線0和註釋的XML 有什麼辦法可以解決這個問題嗎?我不相信實際上會發生不匹配。 – Glynbeard

+0

這可能是由於自動關閉的''標籤引起的。嘗試使它成爲'',看看是否有幫助。 –

+0

嗯我試過了,我仍然只在鉻中收到相同的錯誤。還有什麼我可以嘗試嗎?如果我可以讓它在鉻中工作,我會很開心!再次感謝您的幫助。 – Glynbeard