Czy mogę wyłączyć autouzupełnianie Google Chrome TYLKO dla localhost?


21

Jestem programistą i BARDZO denerwujące jest to, że Chrome sugeruje wszystkie moje dane adresowe w formularzach witryn internetowych, które rozwijam na moim komputerze lokalnym. Czy możliwe jest wyłączenie autouzupełniania na localhost, domenie lub adresie IP? Nic nie widzę w ustawieniach zaawansowanych.


Chociaż „jako programista” nie chcesz mieć takiego samego doświadczenia na lokalnym serwerze testowym, jak na stronie na żywo?
MrWhite

4
Gdybym chciał przetestować określone funkcje przeglądarki, takie jak Autouzupełnianie, zrobiłbym to na serwerze testowym.
Gromer

Odpowiedzi:


8

Niedawno odpowiedziałem na inne pytanie z tym samym wymogiem dostosowywania funkcji Chrome (a także inspirowane przez @Paul ).

UWAGA: To rozwiązanie pozwala zablokować określony adres IP lub listę adresów IP, bez konieczności ładowania dodatkowej biblioteki i żadnych dodatkowych skryptów w projekcie. Faktem jest, że często blokowałeś wszystkie funkcje Javascript, ale kontrolka „noautofill” działa dalej, unikając kolizji z innymi bibliotekami, umożliwiając również rzeczywiste rozpoznanie opłaty za zużycie i czasu renderowania, co może przełożyć się na oszczędność czasu debugowania czasu na różne projekty internetowe.

Utwórz rozszerzenie Chrome korzystające z „hosta filtru dopasowania” interfejsu API Chrome i odfiltruj swój niestandardowy IP hostlub namehost. Następnie ustawić atrybut autocompleteaby off dla wszystkich „wejścia” i „postać” tagów.

Wykonujemy następujące kroki:

  • Utwórz nowy folder o nazwie ex. noautofill

  • Utwórz w naszym nowym folderze nowy plik o nazwie manifest.json i dodaj następujący kod:


{
  "name": "No Autofill",
  "version": "1.0",
  "manifest_version": 2,
  "description": "No Autofill.",  
  "content_scripts": [ {
      "all_frames": true,
      "exclude_globs": [  ],
      "include_globs": [ "*" ],  
      "js": [ "script.js" ],      
      "matches": [   
                   "http://192.168.1.100/",
                   "http://127.0.0.1/",
                   "http://10.0.1.100/",
                   "http://localhost/",
                   "http://wp.local/",
                   "http://192.168.1.100/*",
                   "http://127.0.0.1/*",
                   "http://10.0.1.100/*",
                   "http://localhost/*",
                   "http://wp.local/*"                   
                    ],
      "run_at": "document_start"
   } ],
  "permissions": [ "tabs", "http://*/", "https://*/", "https://*/*", "http://*/*", "contextMenus" ]

}
  • W naszym nowym folderze utwórz nowy plik o nazwie script.js i dodaj następujący kod:


(function(){    
    chrome.extension.sendRequest({
        autofill:'off'
    },function(){       
        var inputnodes = document.getElementsByTagName('input');    
        for(var i=0;i<inputnodes.length;i++){       
            inputnodes[i].setAttribute('autocomplete','off');
        }       
        var formnodes = document.getElementsByTagName("form");    
        for(var i=0;i<formnodes.length;i++){                    
            formnodes[i].setAttribute('autocomplete','off');
        }       
  });
})();
  • Przechodzimy do menu Chrome »Ustawienia» Rozszerzenia

  • Teraz klikamy przycisk „Załaduj rozpakowane rozszerzenia”

  • Na koniec zaznaczamy nasz folder i klikamy przycisk Otwórz.

Oto wynik:

noautofill

Ten system jest bardzo prosty i można dostosować plik script.js za pomocą własnego kodu sterującego. W przyszłości możesz dodawać inne skrypty, CSS, strony konfiguracji itp. Pamiętaj, że za każdym razem, gdy wprowadzasz zmiany w pliku script.js , należy ponownie załadować wtyczkę CtrlR.

Możesz także uzyskać bardziej szczegółowy przewodnik na temat tworzenia rozszerzeń Chrome .


Nie przesadzaj z formatowaniem. Pamiętaj, że czasami mniej znaczy więcej. Zredagowałem Twój post, aby usunąć pogrubienie, kursywa i cytaty, które nie są potrzebne.
slhck,

1
Nie ma problemu, tylko wskazówka na przyszłość :)
slhck

1
Najbardziej podoba mi się to rozwiązanie, dziękuję! Nie jest wielkim fanem zarządzania wieloma profilami, co by działało, po prostu nie takiego rozwiązania, którego szukam. To pozwala mi na usprawnienie. Dziękuję wszystkim!
Gromer

1
Fajne rozwiązanie! Myślę jednak, że mogłeś przegapić symbol wieloznaczny na drugim 10.0.1.100 ?
Paul

wow tak! te czujne oczy :)
RTOSkit

9

Inne odpowiedzi dotyczące korzystania z drugiego profilu lub instalowania drugiej wersji Chrome powinny działać poprawnie. Podchodzę pod innym kątem, aby zapewnić inną opcję, nie dlatego, że uważam, że jest to lepszy sposób na zrobienie tego.


Gdy tworzysz witrynę lokalnie, po prostu dołącz bibliotekę jQuery i skrypt jQuery z następującym kodem:

$(document).ready(function() {
    $(":input").attr("autocomplete","off");
});

Spowoduje to wyłączenie autouzupełniania dla wszystkich danych wejściowych na stronie. Używany w połączeniu z plikiem dołączanym po stronie serwera (w głowie) oznacza, że ​​bardzo łatwo byłoby dodać to podczas testowania i usunąć do produkcji dla całej witryny.


1
1+ Zainspirowałeś mnie do mojego drugiego rozwiązania.
RTOSkit

1
Działa świetnie, dodam, że można umieścić ten kod po stronie serwera, jeśli instrukcja sprawdzająca ustawienie informuje, na jakim środowisku działa strona. W moim przypadku dla MVC wygląda to tak@if (Web.Core.Common.Settings.Environment == Web.Core.Common.Environments.Local) { @Html.Raw("$(':input').attr('autocomplete','off');"); }
guanome

2

Niestety, Google Chrome nie ma opcji automatycznego filtrowania dla poszczególnych witryn.

Jedną z możliwości jest użycie rozszerzenia Lastpass Chrome , w którym możesz zdecydować, które pole ma zostać zapamiętane dla poszczególnych witryn.

Inną alternatywą jest utworzenie nowego profilu użytkownika Ustawienia Chrome -> Użytkownicy -> Dodaj nowego użytkownika lub instalując różne wersje Chrome (Chrome Stable / Beta / Dev, Chrome Canary lub Chromium ).


2

Jednym z rozwiązań (do celów testowych) byłoby dodanie nowego profilu użytkowania bez autouzupełniania.

Użyj tego profilu podczas testowania, aby uniknąć autouzupełniania.


To nie jest najlepsze rozwiązanie - nadal chcesz normalnie korzystać z Internetu na wszystkich innych stronach internetowych.
user1068446,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.