回答
这里就是你要找的 [LINK]答案,总结吧:
您可以轻松地删除突出显示边框(即出现在当一个元素集中的边界)或改变它的颜色与CSS网页视图! WebKit特定的属性“-webkit-tap-highlight-color”就是你要找的。
下面一行将禁用它完全在页面上:
{
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
rgba()
就像rgb()
,但它需要4个参数的不透明度。我相信这可能也适用于iPhone WebView,因为Chrome和Safari都基于WebKit。
它是CSS,因此您可以将它放在外部样式表中,或者放置在带有样式标签的HTML页面中。
另一种更复杂的方法,从链路的commen部分采取的是:
{
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:focus {
outline: 0;
border:none;
color: rgba(0, 0, 0, 0);
}
虽然@ g00dy解决方案在大多数情况下工作,也有一些Android的版本中,这是不够的。我想在此提到的所有属性和其他职位,但没有...
在这种情况下,始终工作原理是使用属性的唯一方法:
-webkit-user-modify: read-write-plaintext-only;
不好的一面是,它允许用户编辑网页视图,它可以显示键盘,甚至让用户在网页视图上书写。
简而言之,经过漫长的一天寻找解决方案,在所有设备和版本中唯一适用于我的方法是使用引用属性,然后处理webview上的点击。
这是丑陋的解决方法:
在我用一个div来包装孔代码,并增加了一个功能,点击事件的HTML:
<html>
<head>...</head>
<body>
<div id="background">...content...</div>
</body>
<script type="text/javascript">
window.onload = function(){
var background = document.getElementById("background");
background.addEventListener("click",backgroundClick,false);
function backgroundClick(e) {
console.log("whatever");
window.location.href="ftp://"; //some protocolor (dummy url)
}
}
</script>
</html>
然后我们就可以覆盖网址加载(或者从Android的控制台日志)如下:
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
someView.requestFocus();
//do something else if needed
return true; //or false if you want the webview to process the url loading
}
});
如果我们改变从web视图焦点移到另一个元素不可编辑,没有显示键盘和效果是德发了一个。
这不是一个好的解决方案,但它是唯一终于为我工作。
当然,这一切都是假设你需要其他触摸事件工作(捏缩放,滚动,点击...)。如果没有,在webview上覆盖onTouch事件,什么都不做就足够了。
我希望这可以帮助别人。 此致敬礼。
编辑: 我注意到你所说的“backgroundClick()” js函数的事实禁用高亮效果甚至消除CSS属性,而不是处理来自Android的单击事件。所以,如果你不需要做的事件东西,你可以忽略的那部分,只是增加德事件监听背景和什么也不做:
<html>
<head>...</head>
<body>
<div id="background">...content...</div>
</body>
<script type="text/javascript">
window.onload = function(){
var background = document.getElementById("background");
background.addEventListener("click",backgroundClick,false);
function backgroundClick(e) {
//nothing
}
}
</script>
</html>
只是一个想法,你可以使用'pointer-events:none' [doc](https://developer.mozilla.org/en/docs/Web/CSS/pointer -events)而不是重写onclick。 – venkatvb
- 1. 覆盖点击颜色/可绘制
- 2. 覆盖卷的颜色
- 3. Chart.js数据背景颜色覆盖点背景颜色
- 4. 删除焦点上的默认蓝色
- 5. 覆盖背景颜色
- 6. ListViewItem选择颜色覆盖
- 7. 无法覆盖android颜色
- 8. 覆盖JComboBox默认颜色
- 9. CEDET覆盖颜色主题
- 10. VIM亮点删除覆盖别人喜
- 11. NSTableView拖放焦点颜色
- 12. 焦点输入格颜色
- 13. seaborn regplot删除数据点的颜色
- 14. 的Gmail覆盖字体颜色
- 15. 图例中的颜色被覆盖
- 16. 背景颜色覆盖我的图像
- 17. jquery datepicker的背景颜色被覆盖
- 18. 带颜色的border-left覆盖border-radius?
- 19. 不能覆盖字体颜色的CSS
- 20. 覆盖Theme.Holo.Light的背景颜色
- 21. SVG覆盖我的背景颜色
- 22. 无法覆盖的背景颜色
- 23. CSS:覆盖父元素的颜色
- 24. 覆盖LaTeX分区的背景颜色
- 25. 覆盖选择颜色 - JTree的
- 26. 覆盖ggplot图中的默认颜色
- 27. 自定义的CSS颜色覆盖
- 28. 覆盖删除多重删除功能
- 29. 此背景颜色不会覆盖其他颜色的原因?
- 30. 行颜色覆盖在android的第一行颜色
感谢您的帮助:) – Inx
始终惠康;-) – g00dy
相反比将颜色设置为黑色并将alpha设置为0.您可以使用'-webkit-tap-highlight-color:transparent;'[doc](https://developer.mozilla.org/en-US/docs/Web/ CSS/-webkit-tap-highlight-color) – venkatvb