LastPassがフォームへの入力を停止する


130

LastPassブラウザー拡張機能がHTMLベースのフォームに「username」という名前の入力フィールドを入力しないようにする方法はありますか?

これは非表示のフィールドであるため、ソフトウェアでこのフィールドを目的に使用したくありません。

<input type="text" name="username" id="checkusername" maxlength="9" value="1999" class="longinput" style="display:none">

解決策は、「入力フィールドの名前を変更する」のようなものであってはなりません。


12
フィールドが非表示の場合はtype="hidden"、CSSで非表示にするのではなく設定することをお
勧めします

2
うまくいかないので間違った答えを受け入れたようです...アレクサンダーが提案したことはうまくいくので、選択を切り替えたいかもしれません;)
Dominique

2
超シンプルなこと$(':input').attr('data-lpignore', true);すべて。これにより、すべてのフォームのラストパスフォーム入力が無効になります。
Adarsh Madrecha

回答:


170

追加

data-lpignore="true"

入力フィールドに移動すると、灰色のLastPass [...]ボックスが無効になりました。

LastPass.comから提供


5
これは有効な答えです。LPはこの属性を尊重しているようで、クレイジーな「検索」名、ID、またはロールを必要としません。
Corneliu

28
これは灰色のアイコンを削除するだけですが、LastPassが入力の自動入力を無視するのを止めません
Arnis Juraga

26
これは「LastPassでフォームへの入力を停止する」ことではないため、受け入れられるべき回答ではありません
コンラッドウォーホル

3
回答で提供されたリンク(lastpass.com/support.php?cmd=showfaq&id=10512に従って、LPはそのフィールドにアイコンが表示されないようにするだけです
Kunal

47

次の2つの条件を満たす必要があります。

  1. フォーム(ない要素)が持っている必要がありますautocomplete="off"属性を
  2. Lastpassユーザーはこのオプションを有効にする必要があります: Settings > Advanced > Allow pages to disable autofill

したがって、これはユーザーと開発者の両方に依存します。


39

私にとってうまくいったのは、フォームのIDに「-search-」という単語が含まれていることです。たとえば<form id="affiliate-search-form">、lastpassはその要素をフォーム入力に追加しません。それはのようなより単純なもので動作します<form id="search">が、動作しません<form id="se1rch">


8
-フィールドまたはクラス属性に「search」または「srch」という単語が含まれる場合-フォームIDまたは名前属性に「search」が含まれる場合-フォームロール属性が「search」
e1v

1
残念ながら、これはパスワードフィールドでは機能しません。事実上、フォームはまだ自動入力されています。私の場合、searchユーザー名とパスワードの両方にクラスとして追加すると、ユーザー名フィールドのアスタリスクボタンが無効になりますが、パスワードフィールドはそのままです。
MikeRockétt2015

2
はい、この方法を使用しても、パスワードフィールドがまだ入力されていることを確認できます。:-(
サイモンイースト

7
これは、現在のLastpassバージョンには適用されなくなりました。したがって、この答えは削除する必要があります。
ヒーローセロヒム2016年

4
単一の入力フィールドのIDに-search-を追加すると、Chrome 51、LastPass 4.1.17で動作します。フォームに追加しても役に立ちません。
Alex2php 2016

18

私はここのパーティーに遅れていることを知っていますが、フォームを台無しにしないようにパスパスを止めようとしたときにこれを見つけました。@takeshinはオートコンプリートだけでは不十分であるという点で正しいです。シンボルを非表示にするためだけに、以下のハックを行いました。きれいではありませんが、アイコンを削除しました。

ラストパスの開発者がこれを読んでいる場合は、使用する属性を指定してください。そのため、このようなものに頼る必要はありません。

form[autocomplete="off"] input[type="text"] {
    background-position: 150% 50% !important;
}

2
これは私にとってうまくいった唯一の解決策です(ラストパス設定で遊んでも、実際にはユーザーがそうすることは期待していません)が、background-image入力フィールドに自分の設定をすることと競合します(私は "clear入力フィールドのボタン」) -にも私のために働いていたものを、その場合には、単に設定されたbackground-imagebackground-positionして!importantてLastPass組み込みのスタイルを上書きします。
ガス

非常にクリエイティブな思考!これをありがとう!
ハワード

18

私が考えててLastPass名誉にautocomplete="off"入力の属性を、私は確信して100%ではないです。

編集 他が指摘したように。これは、ユーザーがこれを受け入れるように構成された最後のパスを持っている場合にのみ機能します。


20
はい、ありますが、デフォルトではありません:helpdesk.lastpass.com/extension-preferences/advanced
Marco

12
ラストパスがautocomplete="off"フォームレベルで順守しないことを確認できます。これは、間違った電子メールアドレスを表示するように見える "ユーザーの編集"フォームで開発時間の1時間を無駄にしました。最終パスの設定には、「すでに入力されているフィールドを上書きしない」オプションがあり、非常に役立ちます。
Jason

7
マルコが述べたように、この動作をアクティブにする必要があります。[設定]-> [詳細設定]-> [オートコンプリートを尊重] =オフ:Webサイトがオートフィルを無効にできるようにする
Dan

ラストパスでこれをどのようにバイパスしますか?
Crash893 '19年

14

私にとっては、type=searchと同じか、textまたはを使用して作業しましたrole=note

LastPass-JavaScriptをチェックすることはできますが、それinput type=searchは非常に大きく、4つの入力タイプしかチェックしないので、そこで回避策が見つかるかもしれません。

!c.form && ("text" == c.type || "password" == c.type || "url" == c.type || "email" == c.type) && lpIsVisible(c))

また、それらはrole無視しているように見えるキーワードです。

var c = b.getAttribute("role");
switch (c) {
case "navigation":
case "banner":
case "contentinfo":
case "note":
case "search":
case "seealso":
case "columnheader":
case "presentation":
case "toolbar":
case "directory":`

LastPassをチェックしonloadwff.js、26.960行のコードを準備しました:)


5
私は上記のすべての答えを試しましたがtype=search、私にとってはうまくいくだけです。
ライアンキング

1
+ 1、type=searchLastPassの "Respect autocomplete = off"設定の状態に関係なく、オートフィルを防ぐ唯一の方法は使用しているようです。
johnnyRose 2017年

role="note"またはを追加してみましたtype="search"。最新のChromeと最新のラストパスには対応していません。
Nikita

lpignore再び動作しているようですが、これをhttps://jsfiddle.net/78z0L1sa/3/
いじっ

OMG、これは面倒です。LastPassが私のtype = text passwordフィールドをtype = passwordに変換していて、この特定の画面でパスワードを確認する必要があり、LastPassがサイトパスワードを追加しました。資格情報を変更し、他のシステムへの接続を切断していました。lpignoreはアイコンを削除しただけで、他のソリューションはユーザーの操作を必要としましたが、これは理想的ではありません。最後に、タイプを検索に変更すると機能しました。誰か他の人のソフトウェアのためにこれをしなければならないのは嫌いです。とにかく、これに賛成票を投じてください。
ジェイソンマーティン

10

入力IDに「検索」を追加します

<input type="text" name="user" id="user-search"/>

1
私にとってはうまくいきます。最新のChromeでテスト済み。それは少しハックですが、他のものほど壊れない可能性があるので、私はそれに挑戦します。
Tedd Hansen

6

パーティーに少し遅れましたが、私はフォームを次のように変更してこれを達成しました:

<form autocomplete="off" name="lastpass-disable-search">

これは、それが検索フォームであると考えるための最後のパスです。ただし、これはパスワードフィールドでは機能しません。この場合、Lastpassは名前フィールドを無視します。

私がこれを行うことができた唯一の方法は、フォームの上部に直接以下を追加することです:

<form autocomplete="off">
    <div id="lp" ><input type="text" /><input type="password" /></div><script type="text/javascript">setTimeout(function(){document.getElementById('lp').style.display = 'none'},75);</script>
</form>

厄介なちらつきが発生しますが、自動入力の意味がなくなりますが、「パスワードの生成」ウィジェットは表示されます。LastPassはdomreadyまで待機してから、表示されているパスワードフィールドがあるかどうかを確認するため、上のモックフィールドを非表示にしたり縮小したりすることはできません。


5

Lastpassのこの最新の2019年10月バギーリリースでは、この単純な修正が最善のようです。

追加

type="search"

あなたの入力に。

lastpassルーチンは、type属性をチェックして自動入力をどうするかを決定し、このtype「検索」のhtml5では何もしません。確かにこれは少しハックですが、バグのあるスクリプトを修正するときに簡単に削除できる1行の変更です。

注:これを行った後、一部のブラウザーがtype属性を取得すると、入力のスタイルが異なる場合があります。これを確認した場合は、ブラウザ固有のCSSプロパティ-webkit-appearance-moz-appearance'none'入力に設定することで、これを防ぐことができます。


4

このES6スタイルのコードは、data-lpignoreをすべての入力コントロールに追加したので、私にとって役立ちました。

const elements = document.getElementsByTagName("INPUT");
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

特定のINPUTコントロールにアクセスするには、次のように記述します。

document.getElementById('userInput').setAttribute("data-lpignore", "true");

または、クラス名で行うこともできます。

const elements = document.getElementsByClassName('no-last-pass');
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

1

ここのオプション(オートコンプリート、data-lpignoreなど)のいずれも、残念ながらLastPassがフォームフィールドを自動入力できないようにしていません。私は問題に対してよりスレッジハンマーのアプローチをとり、name代わりにJavaScriptを介して入力属性を非同期に設定しました。次のjQuery依存関数(フォームのonsubmitイベントハンドラーから呼び出される)がトリックを実行しました。

function setInputNames() {
    $('#myForm input').each(function(idx, el) {
        el = $(el);
        if (el.attr('tmp-name')) {
            el.attr('name', el.attr('tmp-name'));
        }
    });
}

$('#myForm').submit(setInputNames);

フォームでtmp-nameは、同等のname属性の代わりに属性を使用しました。例:

<form id="myForm" method="post" action="/someUrl">
    <input name="username" type="text">
    <input tmp-name="password" type="password">
</form>

アップデート2019-03-20

namengMessagesがフィールド検証エラーメッセージを正しく表示するために、属性を持つフォームフィールドに依存しているAngularJSのため、上記の問題に依然として遭遇しました。

最終的に、LastPassがパスワード変更フォームのパスワードフィールドに入力するのを防ぐために私が見つけた唯一の解決策は、次のとおりでした。

  1. input[type=password]完全に使用しないでください
  2. フィールド名に「パスワード」を含めない

私の場合、フォームを通常どおり送信できるようにする必要があるため、元のソリューションを使用して、フィールド名を「ジャストインタイム」で更新しました。パスワード入力フィールドの使用を回避するために、この解決策は非常にうまく機能していることがわかりました。


0

-searchの名前変更を試みましたが、何らかの理由で機能しませんでした。私のために働いたのは次のとおりです:

  1. フォームにオートコンプリートのマークを付ける-autocomplete = "off"
  2. フォームフィールドの入力タイプをテキストに変更する
  3. CSSに新しいクラスを追加して入力をマスクし、パスワードフィールドをシミュレートします
  4. cssビット:input.masker {-webkit-text-security:disc; }

FFとChromeの最新バージョンで試してテストしました。


0

これは、lastpassがChromeのかみそりの@ Html.EditorForボックスを埋めないようにするために私が働いたものです:

ツールバーのアクティブなLastPassアイコンをクリックし、[アカウントオプション]> [拡張設定]に移動します。

この画面で、「既に入力されているフィールドを上書きしない」にチェックしてください(下部)。

次に、左側の「詳細」をクリックします。

この画面で、「オートコンプリートを尊重する=オフ:Webサイトがオートフィルを無効にできるようにする」にチェックを入れます。

ASP cshtmlフォームで特別なことをする必要はありませんでしたが、@ Html.EditorForボックスのフォームにデフォルト値がありました。

これが誰かのために役立ち、うまくいくことを願っています。私はこの問題に関するRazor固有のヘルプをウェブ上で見つけることができなかったので、上記のリンクと貢献の助けを借りてそれを理解したので、これを追加すると思いました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.