2014-05-13 45 views
0

我正在爲iPhone構建一個應用程序,它將有望使用添加到iOS 7中的新JavaScriptCore框架。我正在使用JavaScript,因爲我需要向我的項目添加一個JavaScript庫(https://bitbucket.org/fbennett/citeproc-js/wiki/Home)。我可以通過將其加載到UIWebView中來啓動該庫,但我需要從後臺線程使用它,所以我試圖將其加載到JSContext而不是。JavaScriptCore - 訪問iOS中的DOMParser

我遇到的問題是庫依賴於使用DOMParserwebkit,但是當框架加載到JSContext時解析器從不加載。

是否可以從JSContext訪問DOMParser?如果沒有,還有其他選擇嗎?

謝謝!

回答

2

由JSContext提供的JavaScript API實際上是該語言的核心API--它甚至沒有像console.log和setTimeout這樣的東西,因爲它們是由瀏覽器提供的。因爲DOMParser是在JavaScriptCore之外定義的另一個API,所以它不應該在JSContext中可訪問。

您可以做的是通過JSExport機制將原生XML解析器如TBXML公開給JSContext,然後使用它。

+0

感謝您的信息和建議。 – Simple99

0

爲了簡化讀者觸及這個問題的情況,CSL的citeproc-js實現現在包含一個用純JavaScript編寫的基於字符串的XML解析器。在the essentials之外不需要任何特殊的設置:如果處理器輸入了一個有效的XML字符串,它就可以使用它。

(作爲citeproc-js的作者和維護者發佈)