访问 WKwebView 中的 DOM 元素
Accessing DOM element in WKwebView
在swift2.1中,Xcode7.1.1
我的代码将本地 index.html 加载到 WKwebView 中。我怎样才能引用 textFields 以便我可以设置它们的一些属性?像 myWebViewTextField.userInteractionEnabled = false
或 myWebViewTextField.enabled = false
docs 说:
You get a window WebScriptObject object by sending windowScriptObject to your WebView object.
我不确定如何从这里开始。感谢
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil //allows the class to refrence WKWebView
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
//path explained http://www.cs.tut.fi/~jkorpela/fileurl.html
let baseUrl = NSURL(string: "file:///<path>/")
let path = NSBundle.mainBundle().pathForResource("index", ofType: "html")
let HTMLString: NSString?
do {
HTMLString = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl )
} catch {
HTMLString = nil
}
}
您读错了 class' 文档。 WebView 和 WKWebView 不一样。后者更快、更安全但不易操纵。
对于 WKWebView,您希望使用 wkwebview.evaluateJavaScript 将执行操作的整个代码串发送到 DOM。 completionHandler 可以 异步 接收简单的结果,如字符串和数字,并根据这些结果触发更多的 JS 评估,但你不能接收 DOM 元素引用并直接调整它们的属性Swift.
在swift2.1中,Xcode7.1.1
我的代码将本地 index.html 加载到 WKwebView 中。我怎样才能引用 textFields 以便我可以设置它们的一些属性?像 myWebViewTextField.userInteractionEnabled = false
或 myWebViewTextField.enabled = false
docs 说:
You get a window WebScriptObject object by sending windowScriptObject to your WebView object.
我不确定如何从这里开始。感谢
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil //allows the class to refrence WKWebView
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
//path explained http://www.cs.tut.fi/~jkorpela/fileurl.html
let baseUrl = NSURL(string: "file:///<path>/")
let path = NSBundle.mainBundle().pathForResource("index", ofType: "html")
let HTMLString: NSString?
do {
HTMLString = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl )
} catch {
HTMLString = nil
}
}
您读错了 class' 文档。 WebView 和 WKWebView 不一样。后者更快、更安全但不易操纵。
对于 WKWebView,您希望使用 wkwebview.evaluateJavaScript 将执行操作的整个代码串发送到 DOM。 completionHandler 可以 异步 接收简单的结果,如字符串和数字,并根据这些结果触发更多的 JS 评估,但你不能接收 DOM 元素引用并直接调整它们的属性Swift.