首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIWebView - stringByEvaluatingJavaScriptFromString - 不更改文本框值

代码语言:txt
复制
你好!作为一个云计算领域的专家,我了解到您的问题关于 `UIWebView` 和 `stringByEvaluatingJavaScriptFromString`。在回答这个问题之前,请允许我简要介绍一下这两个概念。

**UIWebView**

UIWebView 是 iOS 中的一个 UI 组件,用于在应用程序中显示 Web 内容。它可以将 HTML、CSS 和 JavaScript 代码呈现成可视化的 Web 页面。

**stringByEvaluatingJavaScriptFromString**

stringByEvaluatingJavaScriptFromString 是一个字符串方法,用于执行 JavaScript 代码并返回执行结果。这个函数可以在 UIWebView 中使用,以执行 Web 页面中的 JavaScript 代码,并将结果作为字符串返回。

关于您的问题:

- 不更改文本框值,因此无需使用 `stringByEvaluatingJavaScriptFromString` 函数。

如果您需要使用 `stringByEvaluatingJavaScriptFromString` 函数来更改文本框的值,可以考虑以下方案:

1. 在 Web 页面中,使用 JavaScript 代码将文本框的值更改为所需的值。
2. 在 UIWebView 的 `delegate` 方法中,使用 `stringByEvaluatingJavaScriptFromString` 函数获取 Web 页面中文本框的值。
3. 如果需要更改 Web 页面中的文本框值,则使用 `stringByEvaluatingJavaScriptFromString` 函数执行相应的 JavaScript 代码。

示例代码:

```swift

class ViewController: UIViewController, UIWebViewDelegate {

代码语言:txt
复制
@IBOutlet weak var webView: UIWebView!
代码语言:txt
复制
override func viewDidLoad() {
代码语言:txt
复制
    super.viewDidLoad()
代码语言:txt
复制
    // 加载 Web 页面
代码语言:txt
复制
    let url = URL(string: "https://www.example.com")!
代码语言:txt
复制
    let request = URLRequest(url: url)
代码语言:txt
复制
    webView.loadRequest(request)
代码语言:txt
复制
    // 注册 Web 页面加载完毕后的回调函数
代码语言:txt
复制
    webView.delegate = self
代码语言:txt
复制
}
代码语言:txt
复制
// UIWebViewDelegate 方法,处理 Web 页面加载完毕后的逻辑
代码语言:txt
复制
func webView(_ webView: UIWebView, didFinish navigation: WKNavigation!) {
代码语言:txt
复制
    // 获取 Web 页面中文本框的值
代码语言:txt
复制
    let value = webView.stringByEvaluatingJavaScriptFromString("document.getElementById('my-text-box').value")
代码语言:txt
复制
    // 更改文本框的值
代码语言:txt
复制
    webView.stringByEvaluatingJavaScriptFromString("document.getElementById('my-text-box').value = '\(value)'")
代码语言:txt
复制
}

}

代码语言:txt
复制

需要注意的是,使用 stringByEvaluatingJavaScriptFromString 函数获取 Web 页面中的值时,可能会受到 XSS(跨站脚本攻击)等安全风险的影响。因此,应该对获取到的值进行充分的验证和过滤,以确保应用程序的安全性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UI篇- UIWebView使用大全

支持内建手势, 据说高达60fps的刷新频率(卡) WKWebView的创建 导入Webkit这个类库(WKWebVeiw包含在里面的) 遵守协议(一般前两个就行啦,第三个主要是与JS相关的东西...常用设置和方法的使用 1.UIWebView中使用到定位的话,APP中的 info.plist中就要设置跟定位相关的属性。...根据导航类型参数可以得到请求发起的原因 //当网页视图被指示载入内容而得到通知应该返回是,这样会进行加载通过导航类型参数可以得到请求发起的原因,可以是以下任意: - (BOOL)webView:(UIWebView...UIWebView在 iOS11中的使用。 ? UIWebView 在iOS 11上 当顶部的 y设为 0 时,是依然无法盖住UIStatusBar区域的,但是滚动时就会出现问题了。...解决办法:UIWebView 初始化的时候Frame里面的y设置为 20,这样就不会出现UIStatusBar和内容重叠的问题了。 20.

1.9K10

iOS下JS与OC互相调用(一)--UIWebView 拦截URL

(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做。) 2.利用WKWebView 的MessageHandler。...UIWebView 拦截URL 我之前就使用的是UIWebView + 拦截URL 的方式实现的JS与OC 交互。 原因是因为要兼容iOS 6。 1.创建UIWebView,并加载本地HTML。...document.getElementById("returnValue").value = location; } 虽然HTML 内容很少,但是还有不少学问: 1.为什么自定义一个loadURL 方法,直接使用...stringByEvaluatingJavaScriptFromString是一个同步方法,会等待js 方法执行完成,而弹出的alert 也会阻塞界面等待用户响应,所以他们可能会造成死锁。...所有的参数都在URL的query中,先通过&将字符串拆分,在通过=把参数拆分成key 和实际的

3.5K40

UIWebView 浏览器控件一、初始化与三种加载方式二、常用属性和方法三、代理方法 UIWebViewDelegate四、其它案例:

默认情况下UIWebView加载HTML页面后,会以页面的原始大小进行显示,亦即如果页面的大小超出UIWebView视口大小,UIWebView会出现滚动效果,而且用户只能通过滚动页面来查看不同区域的内容...:(NSString*)script; 返回:执行完JS获取返回的东西,举例如下: (1)JS在执行完一段代码之后会将最后一个变量值返回给我们,代码如下 : NSString *js = @"...:js]; NSLog(@"%@",result); // 结果 : 20 字符串类型 (2)当我们调完JS某个函数的时候,我们可以拿到这个函数的返回,代码如下 : NSString *js = @...}" " login();"; 三、代理方法 UIWebViewDelegate 1.每当webView发送一个请求之前都会先调用这个方法,监听准备加载内容时调用,通过判断请求等参数来返回不同返回判断是否加载该网页...用户触击重新加载的按钮 UIWebViewNavigationTypeFormResubmitted 用户重复提交表单 UIWebViewNavigationTypeOther 发生其它行为 返回

1.4K60

iOS学习巩固笔记-UIWebViewJavaScript

1 UIWebView简介 UIWebView是iOS内置的浏览器控件 系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件...的stringByEvaluatingJavaScriptFromString方法即可。...决定网页的内容,css决定网页的样式,js决定网页的事件 2.html学习网站:W3School 3.2 OC和JS代码的互调 OC调用JS的代码 NSString *str = [self.webView stringByEvaluatingJavaScriptFromString...但是对于>2个的参数或者有返回的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作。...selector(call)]; //2.通过MethodSignature来创建一个NSInvocation NSInvocation中保存了方法所属于的对象|方法名称|参数|返回等等

1.2K70

实践-小效果 II

设置UIWebView的背景为透明。并且需要设置 contentWeb.opaque = NO; 使用webView加载百度编辑器编辑后上传的图文文本图片显示不全 ? 修改前 ?...修改后 使用js进行图片的自适应 - (void)webViewDidFinishLoad:(UIWebView *)webView { [webView stringByEvaluatingJavaScriptFromString...NSString *totalString; #回退键的时候,由于textField.text 未改变,所以totalString 为 textField.text 截取掉最后一位的...textField.text substringToIndex:textField.text.length-1]; } else { #当前实际textField.text 的是要拼接上...用中华万年历里的 xml 数据 ,亲测可用,网上很多免费的天气网址都是更新数据的死网站,坑 网络链接 7.设置UIImagePickerController导航条上显示中文界面 # Project

1.1K10

WebViewJavascriptBridge源码探究--看OC和JS交互过程

今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFromString...的代理方法(src的一直是:wvjbscheme://__WVJB_QUEUE_MESSAGE__ ,也可自定义,这个在进入oc UIWebView代理方法时会用来作为判断标识)。...代理方法, 根据src的进入相应处理方法中 -->   在oc方法里面调用js方法_fetchQueue, 获取js数组里面所有的参数   -->   根据传入的自定义注册标识 js_Call_Objc_Func...系统方法stringByEvaluatingJavaScriptFromString调用js脚本WebViewJavascriptBridge....search=博客园 这样UIWebView加载这个带中文参数的url, 是不能显示的,需要把中文进行转义,才能显示。

3.3K50

手把手教你从Core Data迁移到Realm

通过在 Js 端创建一个透明的 iframe,设置这个 ifame 的 src 为自定义的协议,而 ifame 的 src 更改时,UIWebView 会先回调其 delegate 的 webView:...            execIframe.src = "gap://ready";         }     }     ... } iOS这边对应的要在WebView里面写响应的方法 // UIWebView...加载 URL 前回调的方法,返回 YES,则开始加载此 URL,返回 NO,则忽略此 URL - (BOOL)webView:(UIWebView*)theWebView...NSString* queuedCommandsJSON = [_viewController.webView                                     stringByEvaluatingJavaScriptFromString...ret, ret, ret];         DLog(@"\n\njs call fun=%@ ret=%@\n\n", funcName, ret);         [self.webView stringByEvaluatingJavaScriptFromString

1.3K70

iOS中UIWebView的使用详解 原

iOS中UIWebView的使用详解 一、初始化与三种加载方式      UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种...loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:     UIWebView...获取能否跳转下一级 @property (nonatomic, readonly, getter=isLoading) BOOL loading; 获取是否正在加载数据 - (NSString *)stringByEvaluatingJavaScriptFromString...shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 准备加载内容时调用的方法,通过返回来进行是否加载的设置...- (void)webViewDidStartLoad:(UIWebView *)webView; 开始加载时调用的方法 - (void)webViewDidFinishLoad:(UIWebView

72720

H5如何与原生App通信?

但需要注意的是,Safari浏览器使用的浏览器控件和UIwebView组件并不是同一个,两者在性能上有很大的差距。...从IOS12开始,苹果正式弃用UIWebView,统一采用WKWebView。...执行相应逻辑 在H5中发起这种特定协议的请求方式分两种: 通过localtion.href; 通过location.href有个问题,就是如果我们连续多次修改window.location.href的,...ps: 在将回调绑定在window下时,特别注意要使用bind保持函数内this的原有指向不变 IOS客户端调用H5方法 Native调用Javascript语言,是通过UIWebView组件的stringByEvaluatingJavaScriptFromString...// IOS swift code webview.stringByEvaluatingJavaScriptFromString("window.methodName()") 从上面代码可以看出它其实就是执行了一个字符串化的

5.8K20
领券