【问题标题】:iphone - Getting data from uiwebview textfieldiphone - 从 uiwebview 文本字段获取数据
【发布时间】:2011-08-20 00:12:40
【问题描述】:

正在开发一个将 HTML 页面加载到 uiwebview 中的应用程序 - 该 html 文件包含文本文件和下拉列表、文本框等。

这里如何获取用户在该文本文件中输入的值以及从下拉(选择器)中选择的答案。

谢谢

【问题讨论】:

    标签: javascript html objective-c ios uiwebview


    【解决方案1】:

    您可以在页面内轮询 javascript 函数(使用 UIWebView stringByEvaluatingJavascriptFromString:)。

    或者你可以使用一个小技巧直接从页面调用一个objective-c方法:UIWEBVIEW SECRETS - PART3 - HOW TO PROPERLY CALL OBJECTIVEC FROM JAVASCRIPT
    (向下滚动到底部以获取 github 链接)。

    【讨论】:

      【解决方案2】:

      您可以使用[UIWebView stringByEvaluatingJavascriptFromString:] 方法并通过执行javascript 来获取值。

      示例: 如果你的 html 是:

      <html>
        <body>
            <input id="myId" type="text" value="TextValue"/>
        </body>
      </html>
      

      以下代码可以获取文本字段的值:

         NSString* value = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('myId').value"];
      

      【讨论】:

      • 有什么方法可以在应用程序运行时将内容传递给 uiwebview 并重新加载 Web 视图...?
      • @niki 我认为一切都具有在 web 视图中执行 javascript 的能力。在前面的示例中,要在文本字段中设置值,您可以执行 [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('myId').value = 'newValue'"]。同样,您可以使用 javascript 或使用 webview 中的加载方法重新加载。
      • 你能帮我解决这个问题吗stackoverflow.com/questions/10793698/…
      【解决方案3】:

      如果 HTML 响应是这样的,

      <html>
        <body>
            <input id="myId" type="hidden" value="TextValue"/>
        </body>
      </html>
      

      所以你可以在 Swift 中这样访问,

        var id:String = IBwebView.stringByEvaluatingJavaScriptFromString("document.getElementById('myId').value")!
        println(id)
      

      【讨论】:

      • 当它是一个类而不是一个 id 时有没有办法做到这一点?还有一种方法可以获取特定属性的值吗?
      • 是的,使用getElementsByClassName 方法而不是getElementById 来获取class 而不是id 的值。
      • 获取一个元素的某个属性的值怎么样,比如
        ,比如这个例子中的attribute active,你是怎么做到的?跨度>
      • 我在这里写了一个问题,想知道您是否知道 (stackoverflow.com/questions/36840196/…) 的答案,解释了我的情况以及它与这里发生的情况有何不同。
      • 如何在 Swift 3 中使用新的 WKWebView 做到这一点?
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签