我正在尝试在JavaScriptCore中使用jQuery函数,所以我在我的JSContext中将jQuery库作为脚本执行。但是,在我这样做之后,我仍然无法访问任何jQuery函数。这是我在Xcode游乐场中的代码的精简版本:
import JavaScriptCore
let context = JSContext()
//Evaluate JQuery library in context:
do {
let libString = try String(contentsOf: URL(string: "http://code.jquery.com/ui/1.9.2/jquery-ui.js")!, encoding: .utf8)
context?.evaluateScript(libString)
} catch (let error) {
print("Error while processing URL: \(error)")
}
//Access variables defined by JQuery library:
print("'$' in context is defined as: \(context?.objectForKeyedSubscript("$"))")
print("'jQuery' in context is defined as: \(context?.objectForKeyedSubscript("jQuery"))")
打印:
' $'在上下文中定义为:Optional(undefined)
'的jQuery'在上下文中定义为:Optional(undefined)
如果我正确地包含了库,那么它们将被定义为函数。我做错了什么?我是否应该使用JavaScriptCore来获取jQuery功能?
答案 0 :(得分:-1)
你应该包含jQuery库:
NSString *commond = @"window.onload=function(){var jq=document.createElement(\"script\");jq.setAttribute(\"src\",\"https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/js/lib/jquery-1.10.2.js\");document.getElementsByTagName(\"head\")[0].appendChild(jq);window.setTimeout(\"exec()\",1000)};function exec(){document.write($(\"body\").get(0))};";
[self.webView stringByEvaluatingJavaScriptFromString:commond];