在Swift 2.1中,Xcode7.1.1

我的代码将本地index.html加载到WKwebView中。我如何引用textFields以便设置它们的某些属性?如myWebViewTextField.userInteractionEnabled = falsemyWebViewTextField.enabled = false

docs说:


  通过将windowScriptObject发送到WebView对象,可以得到一个窗口WebScriptObject对象。


我不确定从这里怎么走。谢谢

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
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}


}

最佳答案

您正在阅读错误的课程文档。 WebView和WKWebView不相同。后者更快,更安全,但不那么可操作。

对于WKWebView,您想使用wkwebview.evaluateJavaScript来发送对DOM进行操作的整个代码字符串。 completeHandler可以异步接收简单的结果,例如字符串和数字,并根据这些结果触发更多的JS评估,但是您无法接收DOM元素引用,而无法直接从Swift调整其属性。

关于ios - 在WKwebView中访问DOM元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34602662/

10-14 20:40