以下代码是如何从Javascript
调用Swift
if let jsSourcePath = Bundle.main.path(forResource: "jssrc", ofType: "js"){
do {
let jsSourceContents = try String(contentsOfFile: jsSourcePath)
self.jsContext.evaluateScript(jsSourceContents)
}
catch {
print(error.localizedDescription)
}
我认为我可以为jquery
做类似的事情。我的代码块与上述代码块相同,唯一的区别是我指定了要评估的官方jquery
库。
但是,当我尝试评估jquery.js
时,出现以下错误。
TypeError: undefined is not an object (evaluating 'document.createElement')
为什么document.createElement
解析为undefined
?我是否需要修改类jsContext
的成员,以使视图是WKWebView
?
答案 0 :(得分:3)
Document是指文档对象模型或DOM。由于您的Swift视图不是网页,因此没有DOM,所以这就是未定义的原因。我认为您可以从Swift调用Javascript函数,但是一旦Javascript函数依赖DOM并在DOM中操作HTML,我认为这就是您在Swift中遇到问题的地方。