欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue實(shí)現(xiàn)阻止瀏覽器記住密碼功能的三種方法

 更新時(shí)間:2023年06月19日 14:54:38   作者:潮汐未見(jiàn)潮落  
本文主要介紹了Vue實(shí)現(xiàn)阻止瀏覽器記住密碼功能的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

通常瀏覽器會(huì)主動(dòng)識(shí)別密碼表單,在你登錄成功之后提示保存密碼 , 密碼保存到瀏覽器的 密碼管理器中 ( 如下是谷歌瀏覽器 )

這種行為是瀏覽器的行為 ,這種操作也是為了方便用戶(hù)的使用

現(xiàn)在的一個(gè)需求是要阻止這個(gè)保存密碼的彈窗提示 

實(shí)現(xiàn)方法

查找資料發(fā)現(xiàn)的一些方法:

  • 使用 autocomplete="off"(現(xiàn)代瀏覽器許多都不支持)
  • 使用 autocomplete="new-password"
  • 在真正的賬號(hào)密碼框之前增加相同 name 的 input 框
  • 使用 readonly 屬性,在聚焦時(shí)移除該屬性
  • 初始化 input 框的 type 屬性為 text,聚焦時(shí)修改為 password
  • 使用 type="text",手動(dòng)替換文本框內(nèi)容為星號(hào) “*” 或者 小圓點(diǎn) “●”

可以看到實(shí)現(xiàn)這個(gè)需求有許許多多的方法,但是實(shí)際上確有各種各樣的問(wèn)題,下面是我自己測(cè)試的幾個(gè)方法

方法一

密碼框添加 autocomplete="new-password" 屬性

index.html 文件添加 meta 元數(shù)據(jù) (該步驟可以省略)

密碼輸入框

  <el-input
      prefix-icon="el-icon-lock"
      type="password"
      name="xxxx"
      placeholder="密碼"
      v-model="password"
      autocomplete="new-password"
    >
  </el-input>

index.html 文件 (該步驟可以省略)

<!DOCTYPE html>
<html lang="">
  <head>
   .....
    <meta name="autocomplete" content="off"> 
   .......
  </head>
 ......
  <body>
   ........
  </body>
</html>

 注意

這種方法可以適配 谷歌瀏覽器 、 Edge 、 IE 瀏覽器

不兼容 火狐瀏覽器

方法二

新添加兩個(gè)輸入框 , type 分別設(shè)置為 text password

設(shè)置 display: none 屬性讓其隱藏

具體代碼

 <div class="login-location">
        <!-- 隱藏的輸入框 -->
        <el-input
          style="display: none"
          type="text"
          name="xxxx"
          autocomplete="off"
        >
        </el-input>
        <el-input
          style="display: none"
          type="password"
          name="xxxx"
          autocomplete="off"
        >
        </el-input>
		<!-- 真實(shí)輸入框 -->
        <el-input
          ref="pass"
          prefix-icon="el-icon-lock"
          @keyup.enter.native="userLogin()"
          v-model="password"
          type="password"
          placeholder="密碼"
          name="xxxx"
        >
        </el-input>
  </div>

注意

這種方法可以適配 谷歌瀏覽器 、 Edge 、 IE 瀏覽器

不兼容 火狐瀏覽器

方法三

把密碼框的 type 定義為 text ,這樣瀏覽器就無(wú)法正確自動(dòng)識(shí)別 密碼

給輸入框綁定事件 , 每次輸入數(shù)據(jù)觸發(fā)事件, 把 密碼 替換成 圓點(diǎn) ●

給輸入框右側(cè) 小眼睛手動(dòng)綁定事件 ,控制密碼的顯示隱藏

具體代碼

 <div class="login-location">
            <el-input
              prefix-icon="el-icon-lock"
              v-model="pwdCover"
              type="text"
              name="pwd"
              id="pwd"
              placeholder="密碼"
              autocomplete="off"
              @input="setPassword"
              @keyup.enter.native="userLogin()"
            >
              <i
                slot="suffix"
                class="el-icon-view"
                style="margin-top: 10px; margin-right: 10px; font-size: 18px"
                @click="hidePassword"
              ></i>
            </el-input>
     </div>
 // 輸入框輸入事件
setPassword(val) {
      if (this.isShowPassword) {
        this.password = val;
      } else {
        let reg = /[0-9a-zA-Z]/g; // 只允許輸入字母和數(shù)字
        let nDot = /[^●]/g; // 非圓點(diǎn)字符
        let index = -1; // 新輸入的字符位置
        let lastChar = void 0; // 新輸入的字符
        let realArr = this.password.split(""); // 真實(shí)密碼數(shù)組
        let coverArr = val.split(""); // 文本框顯示密碼數(shù)組
        let coverLen = val.length; // 文本框字符串長(zhǎng)度
        let realLen = this.password.length; // 真實(shí)密碼長(zhǎng)度
        // 找到新輸入的字符及位置
        coverArr.forEach((el, idx) => {
          if (nDot.test(el)) {
            index = idx;
            lastChar = el;
          }
        });
        // 判斷輸入的字符是否符合規(guī)范,不符合的話(huà)去掉該字符
        if (lastChar && !reg.test(lastChar)) {
          coverArr.splice(index, 1);
          this.pwdCover = coverArr.join("");
          return;
        }
        if (realLen < coverLen) {
          // 新增字符
          realArr.splice(index, 0, lastChar);
        } else if (coverLen <= realLen && index !== -1) {
          // 替換字符(選取一個(gè)或多個(gè)字符直接替換)
          realArr.splice(index, realLen - (coverLen - 1), lastChar);
        } else {
          // 刪除字符,因?yàn)?val 全是 ● ,沒(méi)有辦法匹配,不知道是從末尾還是中間刪除的字符,刪除了幾個(gè),不好對(duì) password 處理,所以可以通過(guò)光標(biāo)的位置和 val 的長(zhǎng)度來(lái)判斷
          let pos = document.getElementById("pwd").selectionEnd; // 獲取光標(biāo)位置
          realArr.splice(pos, realLen - coverLen);
        }
        // 將 pwdCover 替換成 ●
        this.pwdCover = val.replace(/\S/g, "●");
        this.password = realArr.join("");
      }
    },
     // 點(diǎn)擊右側(cè)小眼睛控制顯示隱藏
    hidePassword() {
      if (!this.isShowPassword) {
        // console.log("顯示");
        this.isShowPassword = true;
        this.pwdCover = this.password;
      } else {
        // console.log("隱藏");
        this.isShowPassword = false;
        this.pwdCover = this.pwdCover.replace(/\S/g, "●");
      }
    },
     // 登錄的邏輯
      userLogin() {
      if (this.account === "admin" && this.password === "admin") {
        this.loading = true;
        setTimeout(() => {
          this.$router.push({ path: "/main" });
        }, 600);
        this.$message.success("登錄成功");
      }
    }

注意

這種方法可以適配 谷歌瀏覽器 、 Edge 、 IE 瀏覽器

同時(shí)兼容 火狐瀏覽器

目前本地測(cè)試暫未發(fā)現(xiàn)問(wèn)題

到此這篇關(guān)于Vue實(shí)現(xiàn)阻止瀏覽器記住密碼功能的三種方法的文章就介紹到這了,更多相關(guān)Vue 阻止瀏覽器記住密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue props傳值失敗 輸出undefined的解決方法

    vue props傳值失敗 輸出undefined的解決方法

    今天小編就為大家分享一篇vue props傳值失敗 輸出undefined的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue3限制table表格選項(xiàng)個(gè)數(shù)的解決方法

    vue3限制table表格選項(xiàng)個(gè)數(shù)的解決方法

    這篇文章主要為大家詳細(xì)介紹了vue3限制table表格選項(xiàng)個(gè)數(shù)的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • VUE3刷新頁(yè)面報(bào)錯(cuò)問(wèn)題解決:Uncaught?SyntaxError:Unexpected?token?'<'

    VUE3刷新頁(yè)面報(bào)錯(cuò)問(wèn)題解決:Uncaught?SyntaxError:Unexpected?token?&apo

    這篇文章主要介紹了VUE3刷新頁(yè)面報(bào)錯(cuò):Uncaught?SyntaxError:?Unexpected?token?‘<‘,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • el-table 表格最大高度max-height的問(wèn)題解決

    el-table 表格最大高度max-height的問(wèn)題解決

    在工作中遇到了多個(gè)滾動(dòng)條的情況,是因?yàn)閑l-table的max-height設(shè)置為固定值導(dǎo)致的,本文主要介紹了el-table 表格最大高度max-height的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Vue實(shí)現(xiàn)手機(jī)掃描二維碼預(yù)覽頁(yè)面效果

    Vue實(shí)現(xiàn)手機(jī)掃描二維碼預(yù)覽頁(yè)面效果

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)手機(jī)掃描二維碼預(yù)覽頁(yè)面效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Vue3中實(shí)現(xiàn)div拖拽功能

    Vue3中實(shí)現(xiàn)div拖拽功能

    這篇文章主要介紹了Vue3中實(shí)現(xiàn)div拖拽功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟

    Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟

    這篇文章主要介紹了Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • vue3二次封裝element-ui中的table組件的過(guò)程詳解

    vue3二次封裝element-ui中的table組件的過(guò)程詳解

    這篇文章主要給大家介紹了vue3二次封裝element-ui中的table組件的過(guò)程,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來(lái)學(xué)習(xí)吧
    2024-01-01
  • vue3 el-form-item如何自定義label標(biāo)簽內(nèi)容

    vue3 el-form-item如何自定義label標(biāo)簽內(nèi)容

    這篇文章主要介紹了vue3 el-form-item如何自定義label標(biāo)簽內(nèi)容問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解Vue2.0組件的繼承與擴(kuò)展

    詳解Vue2.0組件的繼承與擴(kuò)展

    這篇文章主要介紹了詳解Vue2.0組件的繼承與擴(kuò)展,主要分享slot、mixins/extends和extend的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11

最新評(píng)論