【问题标题】:How to accept MathML from Windows Math Input Panel?如何从 Windows 数学输入面板接受 MathML?
【发布时间】:2013-04-23 07:19:55
【问题描述】:

How do i accept MathML? 的问题已经解释了如何使用本地 Windows 代码处理来自 Windows 7 和 Windows 8 数学输入面板的输出。

是否可以仅使用 JavaScript 对任何网络浏览器执行相同操作(即不允许使用 silverlight 或任何其他插件)?我知道 MathML 输入在剪贴板上,但它被声明为非文本(尽管它确实是 application/mathml 或更确切地说是 UTF-16LE encoded XML with MathML markup with a BOM at the start of the data)。我的目标是将MathML 设为UTF-8 encoded text,并通过TinyMCE 进一步嵌入该文本。生成的 MathML 稍后将由 MathJax 呈现,但也可以由服务器处理。缺少的部分是从剪贴板中提取正确的数据。至于 TinyMCE 和 JavaScript(我正在使用它)看到的剪贴板,当它真正包含 How do i accept MathML? 中描述的格式时,它总是空的。

我更喜欢支持 MSIE 10 和最新版本的 Firefox 和 Google Chrome。但是,从短期来看,我可以只支持在 Windows 8 上运行的单个浏览器。我真的很想避免任何插件依赖,即使支持在 Windows 8 上运行的单个浏览器。

如果有人可以向我展示代码,以便仅使用 JavaScript 在 alert() 中显示来自 数学输入面板 中的 MathMLjqueryTinyMCE 依赖项都可以,如果这些帮助),其余的我可以处理。

【问题讨论】:

  • 至于选择从剪贴板粘贴的正确面粉,如果没有浏览器插件,似乎不可能做到这一点。您是否使用 CLCL 来检查剪贴板内容及其风格?
  • 我试过peterbuettner.de/develop/tools/clipview 来检查剪贴板。看起来MathML 实际上是用UTF-16LE 编码的BOM 而不是普通的UTF-8
  • 这个工具已经足够好了。为你的好问题 +1

标签: javascript html clipboard mathml


【解决方案1】:

由于 javascript 无法访问浏览器沙箱,因此无法在网页上使用 javascript 访问剪贴板。至于从剪贴板中选择粘贴的正确面粉,如果没有浏览器插件,这似乎是不可能的。

【讨论】:

  • 一旦剪贴板 API (dev.w3.org/2006/webapi/clipops/clipops.html#processing-model) 被至少一个浏览器支持,只要 UA 不决定不将 MathML 内容包含到 DataTransferItemList,这应该是可行的。谷歌浏览器可能支持它:strd6.com/2011/09/html5-javascript-pasting-image-data-in-chrome
  • 根据 Mozilla 的 bug,Firefox 22 应该支持 Clipboard API。
  • 根据caniuse.com/#feat=clipboard可以使用剪贴板API。 Firefox 需要在客户端更改浏览器设置,所以这确实不起作用。 MSIE 和 Edge 不支持所需的 MIME 类型,因此唯一可能具有合适功能的浏览器是 Google Chrome。但是,我还没有测试这些功能是否真的适用于这个用例。
  • 是的,但这对于许多企业用户来说是不可接受的。如果不适合你,那就去吧
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2011-09-08
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多