如何在 iOS 的 web 视图中更改按钮的背景颜色

Posted

技术标签:

【中文标题】如何在 iOS 的 web 视图中更改按钮的背景颜色【英文标题】:How to change the background color of a Button inside a webview in iOS 【发布时间】:2018-05-11 12:19:36 【问题描述】:

我有一个WebView,它加载一个 URL(比如login.salesforce.com)并要求用户登录到他的实例。

现在,我想摆脱它显示的默认登录屏幕,并想玩弄登录按钮的颜色。

是否可以更改以UIWebViewWKWebView 加载的网站内的按钮颜色?

【问题讨论】:

不确定,但对我来说,这听起来不可能,因为您正在尝试使用 Xcode 来设置它无法访问的元素的样式。我会尝试从 Xcode 端添加一个自定义按钮,并尝试将其放置在网页按钮的上方或位置。 【参考方案1】:

绝对是的。为此,您需要对 html、css 和 java 脚本有一点了解。

步骤 1. 准备一个 java 脚本,如下所示:

let changeHtmlbuttonScript = """
var property = document.getElementById(btn);
if (count == 0) 
  property.style.backgroundColor = "#FFFFFF"
  count = 1;
 else 
  property.style.backgroundColor = "#7FFF00"
  count = 0;

"""

第 2 步:评估当前 web 视图上的 java 脚本

self.webView.evaluatejavascript(self.changeHtmlbuttonScript)

【讨论】:

我正在尝试做同样的事情,更改按钮的背景颜色,但这段代码不起作用。您能否确认这是否适合您。【参考方案2】:

如果您使用自定义 NSURLProtocol 覆盖资源加载,并加载您自己的 CSS 而不是他们的 CSS,则可以使用 UIWebView 来实现。如果您等到页面以某种方式加载(请参阅其他回复),“evaluateJavaScript”可能也会起作用。

您提出的问题很可能违反了 Salesforce 的服务条款,所以我不会这样做。

如果他们为您尝试实现的目标提供 REST API,那么您可以提供自己的 UI。

【讨论】:

以上是关于如何在 iOS 的 web 视图中更改按钮的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

选择时 UITableViewCell 背景颜色中的目标 c 子视图

如何在卡片内的按钮上进行 onclick 事件:更改卡片背景颜色、按钮背景和文本颜色以及文本内容

ios在按钮单击时更改背景

如何在ios中更改标签栏项目的背景图像?

按下按钮时更改列表视图背景颜色

从另一个视图 IOS 更改滚动条背景