iT邦幫忙

0

瀏覽器的自動填入功能有辦法在網站上禁用嗎?

  • 分享至 

  • xImage

接手維護客戶委外開發的網站
他的購物車結帳時可以選擇超商取貨、宅配、7-11取貨等不同的物流方式
但是他的資訊欄位都是相同的欄位,只是對應不同的物流,欄位意義不同
現在遇到的問題是
當客人結帳時,填寫手機或信箱欄位時,如果選擇了瀏覽器自動填入的項目
會導致上面記錄物流資訊欄位的值跑掉
這邊的客人應該是之前就有在網站上消費過的
我有試著設定autocomplete=off
但似乎對瀏覽器的自動填入功能無效
有其他方法嗎?可以讓瀏覽器的自動填入功能無效化

mathewkl iT邦高手 1 級 ‧ 2023-09-05 09:16:41 檢舉
那... autocomplete="off" 呢?
autocomplete="off" => 已經無效

下面是目前有效的方法
autocomplete="new-password" => new-之後接表單物件名稱,例如 name 就是接 new-name
autocomplete="no-autofill" 利用自動填入無法辨識的表單物件來禁用自動填入的功能

最後一種是絕對有效的,就是物件名稱後面要加上亂數例如 name581795354 這樣
當自動填入無法判斷表單物件屬於哪一個紀錄欄位,自然無法自動填入

以上希望有幫助到樓主
迷路 iT邦新手 1 級 ‧ 2023-09-07 17:32:18 檢舉
非常有幫助,十分感謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
Annie
iT邦新手 1 級 ‧ 2023-09-06 11:21:14
最佳解答

之前在專案實作上也有遇過這個問題,解決方式好像就是討論串中 ??窮嘶????? 大大分享的那樣,讓瀏覽器無法判斷現在表單欄位屬於哪一個瀏覽器曾經紀錄的欄位,自然無法自動填入。

剛好趁這個機會研究了一下,整理如下:

1. 單純用 css 處理:

  • 針對 <input> 加上樣式設定,原理應該是透過使用你指定的形狀樣式去混淆你目前頁面上的 <input>,進而達到讓瀏覽器無法判讀、不呈現自動填入值的效果。
  • 針對 <input type="password" /><textarea type="password" /> 似乎還是不適用。
  • 詳細內容可以參考上面回答者 mathewkl大大貼的網友文章 和 MDN連結

2. 針對 Chrome 瀏覽器的處理方式:

  • Chromium 開發團隊建議將 autocomplete 值設成"該欄位不適用自動填寫的說明文字",例如:autocomplete="new-user-street-address"。開發團隊中其中一段陳述是這樣的:

In cases where you really want to disable autofill, our suggestion at this point is to utilize the autocomplete attribute to give valid, semantic meaning to your fields. If we encounter an autocomplete attribute that we don’t recognize, we won’t try and fill it.

  • 實作上舉例可以是這樣:
/* 原本 */
<input type="email">
/* 改成 */
<input type="email" autocomplete="new-user-email-for-checkout">

3. 針對 Edge 瀏覽器的處理方式:

  • 針對單一表單元件逐一加上 autocomplete="no-autofill" ,而非加在 <form> tag 上。

  • 實作上舉例可以是這樣:

/* 原本 */
<input type="email">
/* 改成 */
<input type="email" autocomplete="no-autofill">
參考資料:
  1. Disabling Chrome Autofill
  2. Disabling autofill in Chrome

專業 ...
有條有理的陳述,給個讚

迷路 iT邦新手 1 級 ‧ 2023-09-07 17:33:02 檢舉

好有條理的解答,十分感謝

0
mathewkl
iT邦高手 1 級 ‧ 2023-09-05 09:18:06

https://pochangliao.medium.com/chrome-%E8%87%AA%E5%8B%95%E5%A1%AB%E5%85%A5-autocomplete-ab4998053df5
有人試了幾種autocomplete寫法都失敗
試看看最下面的CSS?

我要發表回答

立即登入回答