回答
這裏就是你要找的 [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