JavaScriptCore - 在iOS中访问DOMParser

问题描述 投票:0回答:2

我正在为iPhone构建一个应用程序,希望使用添加到iOS 7的新JavaScriptCore框架。我正在使用javascript,因为我需要在我的项目中添加一个javascript库citeproc-js。我可以通过在UIWebView中加载它来启动并运行该库,但我需要在后台线程中使用它,所以我试图将它加载到JSContext中。

我遇到的问题是库依赖于使用DOMParserwebkit,但是当框架加载到JSContext时,解析器永远不会加载。

是否有可能从DOMParser访问JSContext?如果没有,还有其他选择吗?

谢谢!

javascript ios objective-c webkit javascriptcore
2个回答
2
投票

JSContext提供的JavaScript API实际上是该语言的核心API - 它甚至缺少console.log和setTimeout之类的东西,因为它们是由浏览器提供的。因为DOMParser是在JavaScriptCore之外定义的另一个API,所以它不应该在JSContext中访问。

你可以做的是通过TBXML机制将一个原生的XML解析器(如JSExport)暴露给JSContext,然后使用它。


0
投票

如果它简化了读者遇到这个问题的事情,CSL的citeproc-js实现现在包含一个用纯JavaScript编写的基于字符串的XML解析器。除了the essentials之外,不需要特殊的设置:如果处理器被提供有效的XML字符串,它将使用它。

(作为citeproc-js的作者和维护者发布)

© www.soinside.com 2019 - 2024. All rights reserved.