https://github.com/gg2001/monero/blob/master/monero/NewWallet.js
我有一个非常大的6000行的js文件,JavaScript核心似乎无法检索变量值,而在任何Web浏览器中运行相同的文件对我来说都很好。当我尝试检索变量的值时,它显示为未定义,但是当我在浏览器中使用js控制台时,它显示正常。我猜测这是由于文件的大小,因为当我把
var helloWorld = "Hello World";
在js文件的前面,这个快速代码可以检索它
func helloWorld() {
if let variableHelloWorld = self.jsContext.objectForKeyedSubscript("helloWorld") {
print(variableHelloWorld.toString())
}
}
但是当我把它放在最后它不能。
答案 0 :(得分:1)
通常这表示解析错误。尝试在调用self.jsContext
之前向objectForKeyedSubscript()
添加错误处理程序,看看它是否输出任何有见地的内容。
self.jsContext.exceptionHandler = { context, exception in
print("JS Error: \(exception?.description ?? "unknown error")")
}
尽管您的JS代码可能在浏览器控制台中有效,但iOS Safari不支持与新浏览器一样多的Javascript功能。
我确实在JS源代码中看到了一行,只是以分号开头(紧接着是(function
)。我想知道解析器是否可能会抱怨没有语句的空行..?但也许没什么。