Placeholders.jsをプレースホルダー ポリフィルとして使用していますが、Opera Mini とは別に正常に動作しますが、これはプロキシ ブラウザーであるためです。Opera Mini のプレースホルダー ポリフィルを持っている人はいますか?
2 に答える
0
Opera Miniのサポート onfocus
とonblur
イベント。したがって、ハンドラーを追加して、イベントでプレースホルダーを非表示にし、focus
イベントで表示することができますblur
(単純なケース)。
iOS Opera Mini と Android Opera Mini(最新バージョン) の私のテストでは、ドキュメントのこのビデオdone
のようにデバイスのキーボードを押した場合にのみ、プレースホルダーのポリフィルが正常に機能することが示されています。キーボードの外側をタップすると、テキスト入力はフォーカスを失いますが、ブラー ハンドラーはトリガーされません。また、Opera Mini レンダリングはお使いのデバイス上で実行されないため、そのような動作は当てはまりません。詳細はこちら。
私のテスト コードでは、2 つのテキスト入力を含むフォームを作成し、最初の入力ハンドラーを属性に追加します。2 番目の入力では、 を使用してハンドラーを追加しますaddEventListener
。
HTML:
<form action="">
<input type=text value="Аttributes handler" onfocus="(this.value === 'Аttributes handler') && (this.value = '')" onblur="(this.value === '') && (this.value = 'Аttributes handler')">
<br><br>
<input type=text value="" data-placeholder="Listener handler">
</form>
Javascript:
document.addEventListener('DOMContentLoaded', function () {
var listenerInputNode = document.querySelector('input:last-child'),
placeholderText = listenerInputNode.getAttribute('data-placeholder');
(listenerInputNode.value === '') && (listenerInputNode.value = placeholderText);
listenerInputNode.addEventListener('focus', function () {
(this.value === placeholderText) && (this.value = '');
}, false);
listenerInputNode.addEventListener('blur', function () {
(this.value === '') && (this.value = placeholderText);
}, false);
});
したがって、Opera Mini にはプレースホルダー用のポリフィルが実際に機能していると思いますが、focus
/blur
イベントは実際には期待どおりに起動しません。
于 2015-02-11T09:02:49.747 に答える