【发布时间】:2015-10-08 07:12:36
【问题描述】:
我有一个 javascript 代码(来自annevk/webvtt):
var WebVTTParser = function () {
this.parse = function (input, mode) {
...
}
};
在 HTML 中我这样称呼它:
var pa = new WebVTTParser()
var r = pa.parse(input, mode)
现在我想在 Objective-C 中对此进行评估。我试过了:
[jsContext evaluateScript:script];
JSValue *parse = jsContext[@"WebVTTParser"][@"parse"];
NSLog("%@", [parse toString]); // undefined
JSValue *parsed = [parse callWithArguments:@[ input, mode ]];
NSLog("%@", [parsed toString]); // undefined
没有成功。 parse 未定义,因此 parsed 也未定义。
如果我使用这个:
JSValue *webVTTParser = jsContext[@"WebVTTParser"];
NSLog("%@", [webVTTParser toString]);
JSValue *parse = webVTTParser[@"parse"];
NSLog("%@", [parse toString]); // undefined
或者这个:
JSValue *webVTTParser = jsContext[@"WebVTTParser"];
NSLog("%@", [webVTTParser toString]);
JSValue *parserFunction = [webVTTParser callWithArguments:@[]]; // equivalent new WebVTTParser()?
NSLog(@"%@", [parserFunction toString]); // undefined
JSValue *parse = parserFunction[@"parse"];
NSLog("%@", [parse toString]); // undefined
然后webVTTParser 打印在控制台日志中,但其他所有内容仍未定义,因此我无法运行它。
如何从webVttParser 访问this.parse 功能?
【问题讨论】:
标签: objective-c javascriptcore