在JavaScriptCore中包含jQuery库

时间:2017-03-23 00:01:19

标签: jquery swift xcode javascriptcore

我正在尝试在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功能?

1 个答案:

答案 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];