代码之家  ›  专栏  ›  技术社区  ›  user8704637

getElementById即使在页面加载后也返回null-WkWebView和Swift

  •  0
  • user8704637  · 技术社区  · 8 年前

    https://app.oncoursesystems.com/homeworkportal/index/brrsd

    https://app.oncoursesystems.com/homeworkportal/index/brrsd ,NSLocalizedDescription=JavaScript异常发生})

    func网络视图:didFinishNavigation: (使用WKNavigationDelegate)但我遇到了相同的错误

    let js = "var myelement = document.getElementById(\"Username\").value='xxx'; myelement.innerHTML= \"New Text\";"
        webView.evaluateJavaScript(js, completionHandler: nil)
    
    webView.evaluateJavaScript("document.getElementById('Username').value='xxx'", completionHandler: nil)
    
    webView.evaluateJavaScript("window.onload = function() { alert(document.getElementById('Username').value='xxx');};", nil)
    
    //I got this error instead for the last one: Error: Optional(Error Domain=WKErrorDomain Code=5 "JavaScript execution returned a result of an unsupported type" UserInfo={NSLocalizedDescription=JavaScript execution returned a result of an unsupported type})
    

    我在viewDidLoad、webView:didFinishNavigation:(确保html已加载)和单击按钮上尝试了所有这些

    我该怎么做才能成功地用值“xxx”填充表单的用户名字段?这是由链接本身的问题引起的还是我的代码有什么问题?

    1 回复  |  直到 8 年前
        1
  •  -1
  •   Kundan Singh Chouhan    8 年前

    根据提供的链接 用户名 字段存在于iFrame中,这就是为什么 document.getElementById('Username') 无效的

    document.getElementById('frame').contentWindow.document.getElementById('Username')