【问题标题】:Including jQuery library in JavaScriptCore在 JavaScriptCore 中包含 jQuery 库
【发布时间】:2017-03-23 00:01:18
【问题描述】:

我正在尝试在 JavaScriptCore 中使用 jQuery 函数,因此我已将 jQuery 库作为脚本在我的 JSContext 中执行。但是,在我这样做之后,我仍然无法访问任何 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 功能?

【问题讨论】:

标签: jquery swift xcode javascriptcore


【解决方案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];

【讨论】:

  • 使用编辑提示正确格式化您的答案。这应该突出显示为代码。然后解释为什么这段代码回答了这个问题以及它是如何解决这个问题的。
  • 问题是关于 JavaScriptCore,而不是 WebView。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 2011-08-14
  • 2011-12-13
相关资源
最近更新 更多