いくつかの入力フィールドを持つHTMLフォームを作成しましたが、特別なものはありません。 Googleの最新バージョンChromeとFirefoxのオートコンプリートを使用すると、すべてのフォームフィールドで機能します。つまり、フォームに入力するたびに、ブラウザーはフィールドの以前の入力値を提案します。
IE8では、まったく機能しません。他のフォームは機能しますが、私の場合はIEは単一の入力値を覚えていません。フォームはSSL暗号化されていますが、動作する他のSSLフォームを試したため、それが理由だとは思いません。ヒントはありますか?ありがとう!
MSDNのオートコンプリートに関する記事 によると、問題はSSLだけではなく、SSLとサーバーから送信されるキャッシュヘッダーの組み合わせです。
Note: if both of the following conditions are true:
1. The page was delivered over HTTPS
2. The page was delivered with headers or a META tag that prevents caching
...the Autocomplete feature is disabled, regardless of the existence or
value of the Autocomplete attribute. This remark applies to IE5, IE6,
IE7, and IE8.
したがって、SSLを介してページを提供している場合、サーバーがCache-control
に送信するprivate, must-revalidate
ヘッダーを変更して、これらのページでIEオートコンプリートを機能させる必要があります。
これは、スタックオーバーフローで数回発生しました。 この回答 は、IEがこのように機能するように設計されていることをMSエンジニアから確認することを含め、特に有益です。
通常、オートコンプリートは、フォームまたは入力要素にautocomplete="off"
属性を設定するか、または [ツール]> [インターネットオプション]> [コンテンツ]タブ )で無効にしない限り、「機能します」。
ただし、IEには、使用しているオートコンプリートフィールドのタイプをINPUTフィールドに伝える適切な方法があります。 VCard 命名スキームを使用してこれを行います。これは例で最もよく示されています:
<input type="text" name="email" vcard_name = "vCard.Email" />
<input type="text" name="officephone" vcard_name = "vCard.Business.Phone" />
詳細については、MSDNの記事「 HTMLフォームでのオートコンプリートの使用 」を参照してください。これは非常に古いので、IE8との関連性は不明ですが、まだ使用されていると思われます。
警告の言葉:vcard_name
およびautocomplete
属性はIEに適しており、not標準(X)HTMLであるため、それらを使用した場合、ページは検証されません。私は個人的にそれらを避けますが、それが違いを生むかどうかを確認します。