HTMLページを読み込んで表示するためにwebviewを使用するAndroidアプリがあります。しかし、新しいページが webview にロードされたばかりの場合、すでにホバーされている要素が存在することがあります。たとえば、「imhovered」という ID を持つ要素はすでにホバーされており、div の背景が青色になっています (以下のコードを参照)。これは、現在のページの要素構造と、前のページでユーザーがタッチした位置に応じて、かなりランダムに発生します。
html コード:
<body>
<a href="link1" class="menu">
<div class="qlink">here is div1</div>
</a>
<a href="link2" class="menu">
<div class="qlink"> here is div2 </div>
</a>
<a id="imhovered" href="link3" class="menu">
<div class="qlink">here is div3</div>
</a>
</body>
およびスタイル:
.menu {
color: red;
text-decoration:none;
font-family:sans-serif;
font-size: 28px;
}
.menu:hover {
color: red;
background-color: green;
}
.qlink {
padding-left: 84px;
padding-top: 24px;
padding-bottom: 20px;
background: url(aaa.png) no-repeat scroll 28px 0px;
}
.qlink:hover {
background-color:blue;
}
私の質問は、要素のこの間違ったホバー状態を削除する方法ですか? 私はしばらくの間、調査と独自の実験で解決策を見つけようとしましたが、まだ成功していません. 以下は、実験中に私が見つけたものです。
webview.clearFocus() -> 動作しません
DOM の準備ができたら、javascript/jquery:
$(document).ready(function () {
alert($("*:hover").attr("id"));--> result:undefined
alert($("*:active").attr("id")); --> result:undefined
alert($("*:focus").attr("id")); --> result:undefined
});
これは、DOM の準備が整ったときに、フォーカスされた要素やホバーされた要素がないことを意味します。
本文のオンロードでの javascript/jquery (ページのロード時):
alert($("*:hover").attr("id")); --> result:imhovered
alert($("*:active").attr("id")); --> result:undefined
alert($("*:focus").attr("id")); --> result:undefined
これは、ページが読み込まれた直後にホバー状態が表示されたことを意味します。間違ったホバー背景が既に表示されているため、スタイルの変更を行うには遅すぎますか? webkit/androidのバグですか?これを解決するためのアドバイスをいただければ幸いです。前もって感謝します!