Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 评估零_Javascript_Swift_Wkwebview - Fatal编程技术网

Javascript 评估零

Javascript 评估零,javascript,swift,wkwebview,Javascript,Swift,Wkwebview,请告诉我,我正在尝试从webview获取输入值。 为什么我得零分。 有什么问题吗? 屏幕如下所示 import SwiftUI import WebKit struct ContentView: View { var body: some View { WebView().edgesIgnoringSafeArea(.all) } } struct WebView: UIViewRepresentable { func makeUIView(context: Contex

请告诉我,我正在尝试从webview获取输入值。 为什么我得零分。 有什么问题吗? 屏幕如下所示

import SwiftUI
import WebKit

struct ContentView: View {
  var body: some View {
    WebView().edgesIgnoringSafeArea(.all)
  }
}

struct WebView: UIViewRepresentable {
  func makeUIView(context: Context) - > WKWebView {
    let webView = WKWebView()
    webView.scrollView.isScrollEnabled = false
    return webView
  }


  func updateUIView(_ webView: WKWebView, context: Context) {
    let liveView = "https://**/"
    if let url = URL(string: liveView) {
      let request = URLRequest(url: url)
      webView.load(request)
      webView.evaluateJavaScript("document.getElementById('ses').value") {
        (result, error) in
        print(result)
      }
    }
  }
}
代码如下所示

import SwiftUI
import WebKit

struct ContentView: View {
  var body: some View {
    WebView().edgesIgnoringSafeArea(.all)
  }
}

struct WebView: UIViewRepresentable {
  func makeUIView(context: Context) - > WKWebView {
    let webView = WKWebView()
    webView.scrollView.isScrollEnabled = false
    return webView
  }


  func updateUIView(_ webView: WKWebView, context: Context) {
    let liveView = "https://**/"
    if let url = URL(string: liveView) {
      let request = URLRequest(url: url)
      webView.load(request)
      webView.evaluateJavaScript("document.getElementById('ses').value") {
        (result, error) in
        print(result)
      }
    }
  }
}

您的文档中似乎没有此元素

//元素存在 console.logdocument.getElementById'demo'。值 //元素不存在 console.logdocument.getElementById'foo'
演示您需要等待页面加载

let timer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) {
  (timer) in
  webView.evaluateJavaScript("document.getElementById('ses').value") {
    (result, error) in
    print(result!)
  }
}

AFAIK getElementsByName返回属性值不为的数组。请尝试document.getElementsByName'ses'[0].value以获取第一个元素的值,或循环这些元素以获取所有元素的值elements@Cerlin抱歉,应该有getElementsById。没有getElementsById方法。您只能获得一个id为的元素,因此方法名为getElementByIdsingular@Cerlin是的,我知道,但是答案仍然是否定的。这个项目在页面上!实际上你不需要这个。通常,您应该在名为didfish或类似的方法中调用evaluateJavascript。这就是为什么要在{}括号中声明一个完成处理程序。加载页面并计算javascript时,将调用完成处理程序。