Dừng LastPass điền vào mẫu


130

Có cách nào để ngăn tiện ích mở rộng trình duyệt LastPass điền vào biểu mẫu dựa trên HTML với trường nhập với tên "tên người dùng" không?

Đây là một trường ẩn, vì vậy tôi không muốn bất kỳ phần mềm nào sử dụng trường này cho mục đích của họ:

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

Giải pháp không nên giống như "đổi tên trường nhập".


12
Nếu trường bị ẩn, tốt hơn là đặt type="hidden"thay vì ẩn nó bằng CSS
Reeno

2
có vẻ như bạn đã chấp nhận câu trả lời sai vì nó không hoạt động ... những gì Alexander đề xuất không hoạt động, vì vậy bạn có thể muốn chuyển đổi lựa chọn của mình;)
Dominique

2
$(':input').attr('data-lpignore', true);Thats siêu đơn giản tất cả. Điều này sẽ điền vào mẫu cuối cùng điền vào tất cả các hình thức.
Adarsh ​​Madrecha

Câu trả lời:


170

Thêm

data-lpignore="true"

đối với trường đầu vào đã vô hiệu hóa hộp LastPass [...] màu xám đối với tôi.

Nguồn từ LastPass.com


5
Đây phải là câu trả lời hợp lệ. LP dường như tôn trọng thuộc tính này và không yêu cầu bất kỳ tên hoặc id hoặc vai trò "tìm kiếm" điên rồ nào.
Corneliu

28
điều này chỉ xóa biểu tượng màu xám, nhưng không dừng LastPass để bỏ qua tính năng tự động điền đầu vào
Arnis Juraga

26
đây KHÔNG nên là câu trả lời được chấp nhận vì điều này KHÔNG "Dừng LastPass điền vào mẫu"
Conrad Warhol

3
Theo liên kết được cung cấp trong câu trả lời ( lastpass.com/support.php?cmd=showfaq&id=10512 ), LP chỉ ngăn biểu tượng được hiển thị trên trường đó
Kunal

47

Hai điều kiện phải được đáp ứng:

  1. Biểu mẫu (không phải phần tử) cần phải có autocomplete="off"thuộc tính
  2. Người dùng Lastpass cần bật tùy chọn này: Settings > Advanced > Allow pages to disable autofill

Vì vậy, điều này phụ thuộc vào cả người dùng và nhà phát triển.


39

Điều làm việc cho tôi là có từ "-search-" trong id của biểu mẫu, đại loại như <form id="affiliate-search-form">- và Lastpass không thêm các phần tử của nó vào đầu vào của biểu mẫu. Nó hoạt động với một cái gì đó đơn giản hơn <form id="search">nhưng không hoạt động với<form id="se1rch">


8
Ngoài ra, nó bị loại bỏ nếu: - nếu tên trường hoặc thuộc tính lớp chứa các từ "tìm kiếm" hoặc "srch" - nếu id mẫu hoặc tên thuộc tính chứa "tìm kiếm" - thuộc tính vai trò của biểu mẫu là "tìm kiếm"
e1v

1
Thật không may, điều này không làm việc cho các trường mật khẩu. Hiệu quả, hình thức vẫn được tự động điền. Trong trường hợp của tôi, việc thêm searchcác lớp vào cả tên người dùng và mật khẩu đã vô hiệu hóa nút dấu hoa thị trên trường tên người dùng, nhưng trường mật khẩu vẫn như cũ.
Mike Rockétt

2
Có, tôi có thể xác nhận rằng các trường mật khẩu vẫn được điền khi sử dụng phương pháp này. :-(
Simon East

7
Điều này không còn áp dụng cho các phiên bản Lastpass hiện tại. Vì vậy, câu trả lời này nên được loại bỏ.
Heroselohim

4
Thêm -search- vào id của một trường nhập liệu duy nhất hoạt động với tôi trên Chrome 51, LastPass 4.1.17. Thêm nó vào mẫu không giúp được gì.
Alex2php

18

Tôi biết tôi đến bữa tiệc muộn ở đây, nhưng tôi đã tìm thấy điều này khi tôi đang cố gắng ngăn chặn người vượt qua phá hỏng hình thức của mình. @takeshin là chính xác trong đó tự động hoàn thành là không đủ. Tôi đã kết thúc việc hack bên dưới chỉ để ẩn biểu tượng. Không xinh, nhưng tôi đã thoát khỏi biểu tượng.

Nếu bất kỳ nhà phát triển cuối cùng nào đang đọc điều này, xin vui lòng cho chúng tôi một thuộc tính để sử dụng, vì vậy chúng tôi không phải dùng đến những thứ như thế này.

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

2
Đây là giải pháp duy nhất phù hợp với tôi (ngay cả khi chơi với cài đặt Lastpass, điều mà tôi thực sự không mong muốn người dùng của mình sẽ làm), mặc dù nó mâu thuẫn với tôi khi đặt riêng background-imagetrên các trường đầu vào (tôi muốn đặt "rõ ràng nút" trên các lĩnh vực đầu vào) - trong trường hợp này cái gì cũng làm việc đối với tôi là chỉ cần thiết background-imagebackground-positionvới !importantđể ghi đè lên phong cách BUILTIN LastPass.
Guss

Tư duy rất sáng tạo! Cảm ơn vì điều đó!
Howard

18

Tôi nghĩ Lastpass tôn vinh autocomplete="off"thuộc tính cho đầu vào, nhưng tôi không chắc chắn 100%.

EDIT Như những người khác đã chỉ ra. Điều này chỉ hoạt động nếu người dùng có lần cuối được cấu hình để tôn vinh điều này.


20
Có, nhưng không phải theo mặc định: helpdesk.lastpass.com/extension-preferences/advified
Marco

12
Tôi có thể xác nhận Lastpass không tôn vinh autocomplete="off"ở cấp biểu mẫu. Điều đó chỉ làm tôi lãng phí một giờ thời gian phát triển trên một biểu mẫu "chỉnh sửa người dùng" xuất hiện để hiển thị địa chỉ email sai. Các tùy chọn cuối cùng có tùy chọn "không ghi đè các trường đã được điền", điều này giúp ích rất nhiều.
Jason

7
Như Marco đã nêu, bạn cần kích hoạt hành vi này. Tùy chọn-> Nâng cao-> Tôn trọng AutoComplete = tắt: cho phép các trang web tắt Tự động điền
Dan

Làm thế nào để bạn bỏ qua điều này trong Lastpass?
Crash893

14

Đối với tôi làm việc hoặc type=searchlà bằng texthoặc sử dụng role=note.

Bạn có thể kiểm tra LastPass-JavaScript nhưng nó rất lớn, có thể bạn có thể tìm thấy một số cách giải quyết ở đó, từ những gì tôi thấy họ chỉ kiểm tra 4 loại đầu vào, vì vậy input type=searchsẽ là một cách giải quyết:

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

Ngoài ra, đó là những từ khóa rolemà họ dường như bỏ qua:

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":`

Tôi đã kiểm tra LastPass ' onloadwff.js, chuẩn bị cho 26.960 dòng mã :)


5
Tôi đã thử tất cả các câu trả lời ở trên và type=searchchỉ có điều phù hợp với tôi.
Ryan King

1
+1, có vẻ như sử dụng type=searchlà cách duy nhất để ngăn chặn tự động điền bất kể trạng thái của cài đặt "Tôn trọng tự động hoàn thành = tắt" của LastPass.
johnnyRose

Đã thử thêm role="note"hoặc type="search". Không có hoạt động trên Chrome mới nhất và cuối cùng mới nhất.
Nikita

có vẻ như nó lpignoređang hoạt động trở lại, https://jsfiddle.net/78z0L1sa/3/
đánh lừa

OMG, điều này thật khó chịu, LastPass đã chuyển đổi trường type = mật khẩu văn bản của tôi thành type = password và trên mật khẩu màn hình cụ thể này được yêu cầu, sau đó LastPass đã thêm mật khẩu trang web và không phải mật khẩu chính xác mà người dùng không biết khi nào họ lưu nó đã thay đổi thông tin đăng nhập và phá vỡ kết nối của họ với các hệ thống khác. Lpignore, chỉ xóa biểu tượng, các giải pháp khác yêu cầu tương tác người dùng, không lý tưởng. Cuối cùng, thay đổi loại để tìm kiếm làm việc; mặc dù tôi ghét phải làm điều này vì phần mềm của người khác. Dù sao, bỏ phiếu về cái này.
Jason Martin

10

Thêm "tìm kiếm" vào id đầu vào

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

1
Hoạt động tốt cho tôi. Đã thử nghiệm trên Chrome mới nhất. Đó là một chút hack, nhưng không có khả năng phá vỡ như những người khác vì vậy tôi sẽ đi cho nó.
Tedd Hansen

6

Bit đến bữa tiệc muộn nhưng tôi vừa đạt được điều này với việc sửa đổi biểu mẫu với:

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

Tôi đoán kẻ ngu này vượt qua suy nghĩ rằng đó là một hình thức tìm kiếm. Điều này không làm việc cho các trường mật khẩu tuy nhiên! Lastpass bỏ qua trường tên trong trường hợp này.

Cách duy nhất tôi quản lý để làm điều này là thêm trực tiếp các mục sau vào đầu biểu mẫu:

<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>

Nó gây ra một nhấp nháy khó chịu nhưng loại bỏ tính năng tự động điền vô nghĩa - mặc dù nó vẫn hiển thị tiện ích "tạo mật khẩu". LastPass đợi cho đến khi sẵn sàng và sau đó kiểm tra xem liệu có bất kỳ trường mật khẩu hiển thị nào không, vì vậy không thể ẩn hoặc thu nhỏ các trường giả ở trên.


5

Đối với bản phát hành lỗi mới nhất vào tháng 10 năm 2019 của Lastpass, bản sửa lỗi đơn giản này có vẻ là tốt nhất.

Thêm vào

type="search"

để đầu vào của bạn.

Kiểm tra thường xuyên lastpass các typethuộc tính để xác định những gì để làm với tự động điền của nó, và nó không có gì trên html5 này typecủa "search". Chắc chắn đây là một vụ hack nhẹ, nhưng đó là một thay đổi một dòng có thể dễ dàng xóa khi họ sửa tập lệnh lỗi của họ.

Lưu ý: Sau khi thực hiện việc này, đầu vào của bạn có thể được tạo kiểu khác với một số trình duyệt nếu chúng chọn typethuộc tính. Nếu bạn quan sát này, bạn có thể ngăn chặn nó xảy ra bằng cách thiết lập các thuộc tính CSS trình duyệt cụ thể -webkit-appearance-moz-appearanceđể 'none'trên đầu vào của bạn.


4

Mã kiểu ES6 này hữu ích cho tôi vì nó đã thêm dữ liệu-lpignore vào tất cả các điều khiển đầu vào của tôi:

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

Để truy cập một điều khiển INPUT cụ thể, người ta có thể viết một cái gì đó như thế này:

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

Hoặc, bạn có thể làm điều đó theo tên lớp:

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

1

Không có tùy chọn nào ở đây (tự động hoàn thành, dữ liệu lpignore, v.v.) đã ngăn LastPass tự động điền vào các trường mẫu của tôi một cách đáng tiếc. Tôi đã sử dụng một cách tiếp cận búa tạ nhiều hơn cho vấn đề và namethay vào đó đặt không đồng bộ các thuộc tính đầu vào thông qua JavaScript. Hàm phụ thuộc jQuery sau đây (được gọi từ trình xử lý sự kiện onsubmit của biểu mẫu) đã thực hiện thủ thuật:

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);

Trong biểu mẫu, tôi chỉ đơn giản sử dụng tmp-namecác thuộc tính thay cho các namethuộc tính tương đương . Thí dụ:

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

Cập nhật 2019-03-20

Tôi vẫn gặp khó khăn với tài khoản trên của AngularJS tùy thuộc vào các trường mẫu có namethuộc tính để ngMessages trình bày chính xác các thông báo lỗi xác thực trường.

Cuối cùng, giải pháp duy nhất tôi có thể tìm thấy để ngăn các trường mật khẩu điền vào LastPass trên biểu mẫu Thay đổi mật khẩu của mình là:

  1. Tránh sử dụng input[type=password]hoàn toàn, VÀ
  2. để không có 'mật khẩu' trong tên trường

Vì tôi cần có thể gửi biểu mẫu bình thường trong trường hợp của mình, tôi vẫn sử dụng giải pháp ban đầu của mình để cập nhật tên trường 'chỉ trong thời gian'. Để tránh sử dụng các trường nhập mật khẩu, tôi thấy giải pháp này hoạt động rất độc đáo.


0

Đã thử đổi tên -search nhưng vì một số lý do không hoạt động. Những gì làm việc cho tôi là như sau:

  1. đánh dấu biểu mẫu để tự động hoàn tất - autocomplete = "tắt"
  2. thay đổi kiểu nhập trường biểu mẫu thành văn bản
  3. thêm một lớp mới vào css của bạn để che dấu đầu vào, mô phỏng trường mật khẩu
  4. bit css: input.masker {-webkit-text-security: đĩa; }

Đã thử và thử nghiệm trong các phiên bản mới nhất của FF và Chrome.


0

Đây là những gì đã làm việc với tôi để ngăn chặn người cuối cùng điền vào hộp dao cạo @ Html.EditorFor trong Chrome:

Nhấp vào biểu tượng LastPass đang hoạt động trên thanh công cụ của bạn, sau đó chuyển đến Tùy chọn tài khoản> Tùy chọn tiện ích mở rộng.

Trên màn hình này, kiểm tra "Không ghi đè các trường đã được điền" (ở dưới cùng)

Tiếp theo, nhấp vào "nâng cao" ở bên trái.

Trên màn hình này, hãy kiểm tra "Tôn trọng AutoComplete = tắt: cho phép các trang web tắt Tự động điền".

Tôi không cần phải làm bất cứ điều gì đặc biệt trong biểu mẫu cshtml của tôi nhưng tôi đã có một giá trị mặc định trong biểu mẫu cho hộp @ Html.EditorFor.

Tôi hy vọng điều này sẽ giúp và làm việc cho một ai đó. Tôi không thể tìm thấy bất kỳ trợ giúp cụ thể về Dao cạo nào về vấn đề này trên web vì vậy tôi nghĩ tôi đã thêm điều này vì tôi đã tìm ra nó với sự trợ giúp của liên kết và đóng góp ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.