android — WebKit /WebView коснуться /выделить по умолчанию (Android Ice Cream Sandwich)" />

WebKit /WebView коснуться /выделить по умолчанию (Android Ice Cream Sandwich)

Я разрабатываю приложение для веб-просмотра (4.0.3), и в веб-просмотре сэндвичей с мороженым есть одна досадная вещь: каждый раз, когда происходит щелчок /нажатие на ссылку или любой кликабельный элемент, отображается синяя (я думаю, это зависит от устройства) подсветка. Это выглядит не очень хорошо, потому что к моим элементам добавлены мои собственные действия. Похоже, что новейший jQueryMobile (1.1.1) очень хорошо справляется с этой проблемой. В предыдущей версии все основные стили webkit были переопределены.

Если у кого-то есть идеи, как избавиться от надоедливой изюминки, это будет высоко ценится.

Cheers, qmacpit


Конечно, я пытался изменить их, прежде чем спросил:

-webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-focus-ring-color: rgba(0, 0, 0, 0);

но это не работает в случае с мороженым. Это решение работало в Android 2.3, где мы получили печально известную «оранжевую рамку» при нажатии на ссылку. Похоже, это часть /настройка WebView. У вас такое же поведение при просмотре страниц в родном браузере. Это действительно раздражает, потому что это касается не только ссылок, но также кнопок и других HTML-элементов.

Кроме того, jQuery Mobile все еще не решает эту проблему, хотя влияет на графику довольно значительно. Либо они этого еще не видели, либо они все еще работают над решением.

Есть еще предложения?

4 голоса | спросил qmacpit 13 J000000Friday12 2012, 00:52:49

4 ответа


0

Я обнаружил, что сталкиваюсь с той же проблемой (android всегда выделял элемент svg даже с использованием CSS, предложенного выше). Честно говоря, я не знаю, почему правило css не было применено (я уверен на 100%, что оно не было переопределено), но я нашел другое решение.

Похоже, что выделение происходит только для элементов, для которых установлен прослушиватель onclick. Я обнаружил, что установка прослушивателя onTouchStart вместо прослушивателя onClick фактически решила мою проблему.

Я тестировал его на Galaxy Nexus с JB 4.2. Обратите внимание, что применение правила css в следующем примере работает должным образом.

<!html>
<html>
<head>
  <title>Click/touch test</title>
  <script type="text/javascript">
  function reset() {
    document.getElementById("A-test").innerHTML="On click listener";
    document.getElementById("A-test2").innerHTML="On touchstart listener";
  }
  window.onload = function() {
   document.getElementById("A-test").onclick = function () {
    this.innerHTML = "see the highlight"
   }

   document.getElementById("A-test2").ontouchstart = function () {
    this.innerHTML = "no highlight here"
   }
  }
  </script>
</head>
<body>
<div id="A-test">On click listener</div>
<div style="height: 60px"></div>
<div id="A-test2">On touchstart listener</div>
</body>
</html>

Вот jsfiddle http://jsfiddle.net/aQ9zM/2/

ответил Fales 21 PM00000090000001731 2013, 21:36:17
0

Я наконец нашел ответ:] это функция веб-просмотра, которую можно отключить, вызывая

setLightTouchEnabled(false)
ответил qmacpit 3 AM00000010000003431 2012, 01:31:34
0

Это должно исчезнуть, если вы установите эти CSS-свойства для своих элементов:

-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-focus-ring-color: rgba(0, 0, 0, 0);
ответил Daniel Kurka 13 J000000Friday12 2012, 01:19:43
0

Установите следующее свойство css: -webkit-tap-highlight-color: rgba (0,0,0,0); Это не вызовет проблемы с полями ввода. Но в этом случае вам понадобится доступ к используемому вами HTML-коду (хотя вы все равно можете вставить его в HTML-код).

ответил masadi zainul 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 20 Sep 2013 13:52:46 +0400 2013, 13:52:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132