我花了几个小时在网上寻找解决方案,并且走了太多奇怪的胡同......
假设我有一个公式: x ^ 2 + 3x + 32
我想随机选择用文本框替换公式的一部分(我可以这样做)
x^2 + [textbox]x +32
然后显示格式良好的结果,供学生输入。 (我不能这样做)
我看过MathJax和MathML,我认为如果我可以将结果变成mathml格式,包括我排序的文本框。我已经可以很好地使用MathJax显示公式了。
什么不起作用:
使用文本框(替换数字)查找并替换生成的公式
使用文本框(添加注释标签)查找并替换生成的公式
两个approches我试过搞乱间距/剪辑文本框,所以它无法使用。我认为唯一的方法是使用已包含的文本框生成MathML,而不是尝试在之后添加它。
但我不知道怎么做?任何人都可以建议一种方法来生成带有文本框的mathml,以便在mathjax中使用吗?
到目前为止,这是我失败的尝试:
<script type="math/mml" id="scriptTag">
<math>
<mfrac>
<msqrt>
<mn>
<semantics>
<annotation-xml encoding='application/xhtml+xml'>
<input xmlns='http://www.w3.org/1999/xhtml' type='text' size='4' />
</annotation-xml>
</semantics>
</mn>
</msqrt>
<mn> 3 </mn>
</mfrac>
</math>
</script>
我可以使用本指南创建基本(无文本框)mathml: http://www.xmlmind.com/tutorials/MathML/
答案 0 :(得分:3)
我认为现代浏览器允许在HTML5中混合使用HTML元素和MathML元素:
<div>
<h2>Example 2</h2>
<div>
<math>
<mrow>
<mn><input type="text" size="4"></mn>
<mo>*</mo>
<mi>x</mi>
</mrow>
</math>
</div>
</div>
<div>
<h2>Example 2</h2>
<div>
<math>
<mrow>
<mn><input type="text" size="4"></mn>
<mo>*</mo>
<mi>x</mi>
</mrow>
</math>
</div>
</div>
&#13;
这是一个上标示例,Firefox显示输入框:
<div>
<h2>Example msup</h2>
<div>
<math>
<mrow>
<msup>
<mn>2</mn>
<mn><input type="text" size="4"></mn>
</msup>
</mrow>
</math>
</div>
</div>
<div>
<h2>Example msup</h2>
<div>
<math>
<mrow>
<msup>
<mn>2</mn>
<mn><input type="text" size="4"></mn>
</msup>
</mrow>
</math>
</div>
</div>
&#13;