【问题标题】:Change color of button in UIWebView ios objective -c更改 UIWebView ios Objective -c 中按钮的颜色
【发布时间】:2016-06-13 11:11:49
【问题描述】:

我们已经在 webview 中加载了登录页面,现在一旦用户点击 webview 中的“登录”按钮,我想使用 iOS 目标 - c 代码更改该按钮的颜色。这可能吗?

谢谢!

【问题讨论】:

  • 按钮是在IB中创建的吗?
  • 不,它是一个网页元素
  • 如果按钮不是由你创建的,并且它是从另一个来源加载的,你怎么可能改变颜色?

标签: ios objective-c uiwebview


【解决方案1】:

我在某处读过这个……它对我有用……

点击此链接:http://jsfiddle.net/timdown/Bvd9d/ 并将 JS 代码放入您的 JS 文件中。将其导入 .HTML 文件中。

试试这个代码:

function highlight(colour) {
var range, sel;
if (window.getSelection) {

    try {
        if (!document.execCommand("BackColor", false, colour)) {
            makeEditableAndHighlight(colour);
        }
    } catch (ex) {
        makeEditableAndHighlight(colour)
    }
} else if (document.selection && document.selection.createRange) {
    // IE <= 8 case
    range = document.selection.createRange();
    range.execCommand("BackColor", false, colour);
}}

对于目标 C:

调用这个方法:

[webView stringByEvaluatingJavaScriptFromString:@"highlight('#ff0')"];

【讨论】:

    【解决方案2】:

    可以使用 UIWebView 的委托方法。 然后你可以在 ObjC 或 Swift 中执行 JavaScript 代码。

    几分钟后我会告诉你详细代码,因为我正在回家的路上。


    嗨,我回来了。

    主要想法是重新分配按钮的onclick 属性。 在实现新功能时调用旧的 `onclick' 功能。

    首先,你应该知道按钮的onclick函数。 通过阅读网页的源代码,您可以知道函数的名称。

    您还需要知道按钮的 ID。

    例如,clickButton() 是函数名。 btn 是按钮的 ID。

    <input type="button" id="btn" value="Test Button" onclick="clickButton()">
    

    然后,您应该启动您的 Xcode 并编写一个 UIWebView 来加载网页。 您应该实现delegate 属性并覆盖-webViewDidFinishLoad: 方法。

    - (void)webViewDidFinishLoad:(UIWebView *)webView {  
        [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('btn').onclick = function () { document.getElementById('btn').style.backgroundColor = 'red'; clickButton(); }"];
    }
    

    您应该将'red''btn' 替换为正确的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2016-03-15
      • 2015-09-26
      相关资源
      最近更新 更多