Luk*_*kas 2 iphone objective-c uiwebview ios
我搜索过网络,但是给定的解决方案并不符合我的需求..所以我有一个webview,我的webview加载这样的数据:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[_webView loadHTMLString:htmString baseURL:baseURL];
Run Code Online (Sandbox Code Playgroud)
该html字符串具有带href的锚标签,例如 - <a href = http://url.com/ ... />并且我在shouldStartLoadWithRequest上触发了一些事件.
现在问题是我不知道如何在按下此属性时删除灰色选择.我看到人们这样做:
<a href=http://yourlink.com/ style = "-webkit-tap-highlight-color:rgba(0,0,0,0);">
Run Code Online (Sandbox Code Playgroud)
和一些类似的事情,但我想以其他方式做.通过其他方式我说我不想改变我的htmlString,因为它可能有很多,并且注入风格似乎不是完美的解决方案..
所以我尝试这样做:
[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTapHighlightColor = \"rgba(0,0,0,0);\""];
Run Code Online (Sandbox Code Playgroud)
我加载html字符串后,但它不起作用.
所以任何人都有一些建议,或者知道我做错了什么?
编辑: 或者可能只是为我想要的行为注入javascrypt?
提前致谢!!!
这段代码可以解决这个问题:
- (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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |