怎麼禁止自動填充瀏覽器記住的密碼?
我登錄知乎後點擊了瀏覽器自帶的記住密碼功能。當我等出後再次進入知乎時,瀏覽器會自動幫我填充賬戶密碼。但是我發現如果我點擊「註冊」按鈕。發現也填寫了賬戶和密碼。
我想知道在點擊註冊的時候有沒有必要將賬號和密碼清空。我感覺如果自動清空的話,用戶體驗不是會更好嗎?如果有必要清空,那應該怎麼去清空?
可能我不怎麼會提問題,所以沒有人回答。呵呵! 如果想清空註冊頁面的自動填充,可以先將填寫密碼元素類型設置為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 | 網頁瀏覽器 |