在UIWebView ios objective -c中更改按钮的颜色

时间:2016-06-13 11:11:50

标签: ios objective-c uiwebview

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

谢谢!

2 个答案:

答案 0 :(得分:0)

可以使用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'

答案 1 :(得分:0)

我在某个地方读到这个......它对我有用..

点击此链接: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')"];