JavaScriptCore - 在 iOS 中访问 DOMParser
Posted
技术标签:
【中文标题】JavaScriptCore - 在 iOS 中访问 DOMParser【英文标题】:JavaScriptCore - Accessing DOMParser in iOS 【发布时间】:2014-05-13 10:55:59 【问题描述】:我正在为 iPhone 构建一个应用程序,它有望使用添加到 ios 7 的新 javascriptCore
框架。我正在使用 javascript,因为我需要向我的项目添加一个 javascript 库 citeproc-js。我可以通过将它加载到UIWebView
中来启动并运行这个库,但我需要从后台线程中使用它,所以我尝试将它加载到JSContext
中。
我遇到的问题是库依赖于使用webkit
的DOMParser
,但是当框架加载到JSContext
时解析器永远不会加载。
是否可以从JSContext
访问DOMParser
?如果没有,还有其他选择吗?
谢谢!
【问题讨论】:
【参考方案1】:JSContext 提供的 JavaScript API 实际上是该语言的核心 API - 它甚至缺少诸如 console.log 和 setTimeout 之类的东西,因为它们是由浏览器提供的。因为 DOMParser 是在 JavaScriptCore 之外定义的另一个 API,所以它不应该在 JSContext 中访问。
您可以做的是通过 JSExport 机制向 JSContext 公开像 TBXML 这样的原生 XML 解析器,然后使用它。
【讨论】:
感谢您的信息和建议。【参考方案2】:如果它为遇到这个问题的读者简化了事情,CSL 的citeproc-js 实现现在包含一个用纯 JavaScript 编写的基于字符串的 XML 解析器。除了the essentials 之外,不需要任何特殊设置:如果为处理器提供了一个有效的 XML 字符串,它将使用它。
(以 citeproc-js 的作者和维护者身份发帖)
【讨论】:
以上是关于JavaScriptCore - 在 iOS 中访问 DOMParser的主要内容,如果未能解决你的问题,请参考以下文章
转载 iOS js oc相互调用(JavaScriptCore)