删除uiwebview href灰色选择

时间:2012-08-07 11:42:54

标签: iphone objective-c ios uiwebview

我搜索了网络,但给定的解决方案并不适合我的需求.. 所以我有一个webview,我的webview加载这样的数据:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[_webView loadHTMLString:htmString baseURL:baseURL];

该html字符串具有带href的锚标记,例如 - < a href = http://url.com/ ... />我在shouldStartLoadWithRequest上触发了一些事件。

现在问题是我不知道在按下此属性时如何删除灰色选择。我看到有人在这样做:

<a href=http://yourlink.com/ style = "-webkit-tap-highlight-color:rgba(0,0,0,0);">

和一些类似的事情,但我想以其他方式做到这一点。通过其他方式,我说我不想改变我的htmlString,因为它可能有很多,并且注入风格似乎不是完美的解决方案..

所以我尝试这样做:

[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTapHighlightColor = \"rgba(0,0,0,0);\""];

我加载html字符串后,但它不起作用。

所以任何人都有一些建议,或者知道我做错了什么?

修改 或者为我想要的行为简单注入javascrypt?

提前致谢!!!

1 个答案:

答案 0 :(得分:5)

这段代码可以解决问题:

- (void)webViewDidFinishLoad:(UIWebView *)webView

    NSString *js = @"var styleNode = document.createElement('style');\n"
                    "styleNode.type = 'text/css';\n"
                    "var styleText = document.createTextNode('a {-webkit-tap-highlight-color:rgba(0,0,0,0)}');\n"
                    "styleNode.appendChild(styleText);\n"
                    "document.getElementsByTagName('head')[0].appendChild(styleNode);\n";

    [_webView stringByEvaluatingJavaScriptFromString:js];
}