怎麼禁止自動填充瀏覽器記住的密碼?

我登錄知乎後點擊了瀏覽器自帶的記住密碼功能。當我等出後再次進入知乎時,瀏覽器會自動幫我填充賬戶密碼。但是我發現如果我點擊「註冊」按鈕。發現也填寫了賬戶和密碼。

我想知道在點擊註冊的時候有沒有必要將賬號和密碼清空。我感覺如果自動清空的話,用戶體驗不是會更好嗎?

如果有必要清空,那應該怎麼去清空?

可能我不怎麼會提問題,所以沒有人回答。呵呵!

如果想清空註冊頁面的自動填充,可以先將填寫密碼元素類型設置為text。當得到焦點時改變類型。


禁止瀏覽器保存密碼和禁止瀏覽器填充密碼

瀏覽器保存密碼是根據input="password"來判斷的,所有我們只要保證瀏覽器在dom結構中識別不到密碼框即可。

so:

--&>密碼輸入位置默認為input="text"。

--&>在輸入框上添加 onfocus="this.type="password"" 輸入框獲得焦點時改變輸入框格式為密碼框

--&>輸入密碼

--&>在提交前清空輸入框密碼,並修改密碼框為文本框。(我的提交為發生Ajax提交,可根據自己實際情況進行調整,或者情況密碼之後,將值保存在一個隱藏域中,再提交表單)

--&>commit。

1. 使用此方法即可在進入界面時瀏覽器不填充密碼,也不會在提交之後保存密碼。

2. IE8+、Chrome、FF、360測試通過。

3. 其實寫這段代碼的時候只是為了禁止Chrome保存密碼,對於其他瀏覽器只是驗證是否正常顯示。

4. 次方法不針對通過js向密碼框輸入密碼的情況,因為js輸入不觸發獲得焦點事件。


瀏覽器保存密碼有時會導致一些奇葩問題,比如本該填寫數額的地方瀏覽器自作主張的給你填上了帳號,即使載入時清空,雙擊仍然會以下拉框的方式供你選擇。所以最後我決定直接禁掉保存密碼功能,實現起來卻還是遇到了麻煩:包括設置autocomplete為off(此方法已確定無效)、動態設置password屬性等方法都有各種各樣的兼容問題,要麼谷歌、要麼火狐、要麼IE的高低版本。最後解決方法如下,IE、EDGE、FF、Chrome測試通過:密碼框type設置為password,設置一個隱藏域,在表單提交前將密碼框的value填入隱藏域——&>把密碼框的value替換為圓點(Chrome的圓點比較小,百度可以找到)——&>把密碼框的type改為text——&>提交表單,完成。


&

&

谷歌瀏覽器比較吊,只加上一個隱藏密碼框還是不行的,把兩個密碼框名字改成一樣的就好了,這傢伙就找不到了,(*^__^*) 嘻嘻……

我又回來了-----------------------------------------------------------居然超過了1*10個人贊了我,於是乎

再給大家分享一個解決方案,有需要的可以試一試

&

&autocomplete="new-password" data-max-length="50" tabindex="2" spellcheck="false" id="auto-id-1505904797992" placeholder="請輸入密碼">

先輸入一個隱藏文本域,再輸入第二個展示的文本框,重點是我加黑的字體,編譯器可能會無法識別,但是瀏覽器可以解析。


下邊是舊答案,有問題

——————————————————————

這兩天遇到這個任務了,同事給發了這個鏈接,按照最高贊的那種方法應該是能做到的,但是用的是 React + Redux,如果按照那種方法複雜度會提高很多。

後來無意間發現了一種方法:

瀏覽器在構建頁面結構的時候,會判斷頁面上是否有:

& 元素,如果有的話,你點擊密碼框會出現:使用以下項密碼。

解決:

在初始化構建整個頁面結構的時候不要出現 & 元素,可以使用 & 元素代替。然後為 type="text" 元素增加 onfocus 事件,當事件觸發後:

動態把 & 修改為 &

這樣子就能保證不會出現「自動填充」和「使用以下項密碼」的問題


先設置text再onfocus時改變type在IE8下是不行的,IE8裡面input的type是只讀的。

我現在採用的方式是:

1、加個隱藏的input在中間

2、dom完成之後直接清空所有的password

如果還有其他更好的方案可以補充下。


oninput="if(this.value==""){this.type="text"}else(this.type="password")"

已測


input="text" onfocus="this.type="password"" 這個很好用


&

&

&

下面input的name也要對應

有個小問題,ajax傳參的時候,如果傳的是key是name,那就會傳重複的key


測試過 chrome ,火狐,ie11

&
&
&
&
&&
&


推薦閱讀:

如何評價node_modules的設計?
我用js寫了一個冒泡排序法,怎麼用html和css把排序過程展現出來?
關於具名的IIFE內部對函數自身再賦值問題?
官網網站用什麼技術棧比較合理?

TAG:JavaScript | 網頁瀏覽器 |