html - 항목 - 크롬 주소창




"자동 완성=끄기"는 Google 크롬 브라우저에서 작동하지 않습니다. (4)

AJAX 호출을 사용하여 백엔드에 데이터를 제출하는 경우 AJAX 호출을 완료 한 후 암호 필드는 분명해야합니다. 그러면 암호 저장 프롬프트가 나타나지 않습니다.

예 : $ (# foo) .val ( "");

이 질문에는 이미 답변이 있습니다.

Stackoverflow에 비슷한 질문이 하나 있다는 것을 압니다.하지만 거기에는 해결책이 없습니다.

<form autocomplete="off" id="search_form" method="post" action="">
    <input autocomplete="off" type="text" />
</form>

보시다시피 양식과 입력 필드 모두에 autocomplete=off 를 입력했지만 Google 크롬은 여전히이 자동 완성 목록을 표시합니다. Firefox 및 Safari와 같은 다른 브라우저에서는 이러한 현상이 발생하지 않습니다.

autocomplete=off 를 form 태그에 넣는 것 이외의 다른 해결책은 ??


Google 크롬의 버그 일 수 있습니다. 숨겨진 입력을 통해 속임수를 쓸 수는 없습니다. 자동 완성 기능은 데이터를 채우기위한 첫 번째 입력 텍스트를 가져옵니다.

<form autocomplete="off" id="search_form" method="post" action="">
    <input type="text" style="display:none" />
    <input autocomplete="off" type="text" />
</form>

이것을 시험해보고, 나를 위해 조금만 어 지른 후에 일했다.

if ( navigator.userAgent.toLowerCase().indexOf('chrome') >= 0 ) {
    $('input[autocomplete="off"]').each( function(){
        var type = $(this).attr( 'type');
        $(this).attr( 'type', '_' + type );
        $(this).attr( 'type', type );
    });
}

이는 Chrome이 디자인 한 결정 때문입니다 (아마 모든 Chrome 사용자가이 동작을 원할 것입니다).

그 이유는 Google 이 선거구의 우선 순위 라고 부르는 것 입니다 .

  1. 사용자는 왕이다! 그들이 원하는 것이 가장 중요합니다.
  2. 사용자가 암호 또는 자동 채우기 관리자를 사용하려고합니다.
  3. 웹 응용 프로그램에서는 양식 값을 저장하지 않기를 원합니다.
  4. 사용자의 선택이 더 중요하므로 양식 값이 유지됩니다.

순조롭게 작업 할 수있는 방법이 있지만 Chrome 개발자가 버그를 올바른 것으로 간주하고 해결 방법을 버그로 간주하므로 향후 Chrome 버전에서 해결 될 가능성이 큽니다.

해결 방법이 작동하는 동안에도 사용자가 혼동을 줄 수 있습니다. 설정에 따라 자동 작성이 작동 할 것으로 예상됩니다.

많은 사용자가 이미 페이지에서 자동 완성 = 꺼짐을 제거하는 플러그인이나 스크립트를 사용하여 앱 자동 완성 설정을 무시하기로 선택했습니다. 이미 선택 사항이 있습니다.

자동 완성 기능이 작동하고이를 설명 할 수 있다는 가정하에 설계하는 것이 가장 좋습니다.

개인적으로 사이트가 내 암호를 기억하지 못하고 브라우저 확장을 사용하는 암호를 무시할 때 나는 그것을 싫어합니다. 그러나 나는 또한 내 직업을위한 응용 프로그램을 만들었고 사용자가 자신의 컴퓨터를 잠금 해제 상태로 둘 수 있으므로 암호를 기억하는 것이 보안 위험으로 여겨진다. 내 개인적인 견해로는 사용자가 자신의 컴퓨터를 잠그지 않는 것은 로컬 IT의 문제이며 응용 프로그램이 아니라 로컬 IT가 사용자를 신뢰할 수없는 경우 모든 웹 응용 프로그램의 모든 암호 자동 완성을 비활성화 할 수 있습니다.

불행히도 일부 응용 프로그램은 여전히 ​​자동 완성을 비활성화해야 보안 검사를 통과하려면, 그것을 할 수있는 방법이 있지만, 그들은 모두 끔찍한입니다. 첫 번째 해킹은 완전히 새로운 비밀번호 입력을하는 것입니다.

<input type="hidden" name="password" id="realPassword" />
<input type="password" name="{randomly generated}" 
    onchange="document.getElementById('realPassword').value = this.value" />

단순화하기 위해 모든 것을 인라인했습니다.하지만 해킹에 대한 아이디어를 제공해야합니다. 플러그 인이나 브라우저가 입력을 완전히 새로운 이름으로 자동 채울 수는 없습니다.

이 솔루션은 ARIA 및 레이블 (브라우저 / 확장명에서 레이블의 입력을 찾아 자동 채우기 할 수 있도록)을 적절하게 빌드하면 작동하지 않습니다.

따라서 옵션 2는 자동 완성이 시작된 후 필드가 공백이 될 때까지 기다리는 것입니다.

<input type="text" name="username" 
    onchange="window.setTimeout(function() { 
        document.getElementById('password').value = ''; 
    }, 100)" />
<input type="password" id="password" />

내가 말했듯이, 불쾌한.







html-form