我搜索了网络,但给定的解决方案并不适合我的需求.. 所以我有一个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?
提前致谢!!!
答案 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];
}