[html] Firefox의 버그-새로 고침 할 때 입력의 비활성화 된 속성이 재설정되지 않음
Firefox에서 버그라고 생각되는 것을 발견했으며 이것이 실제로 버그인지, 그리고 이에 대한 해결 방법이 있는지 궁금합니다.
다음 소스로 기본 웹 페이지를 만드는 경우 :
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
</head>
<body>
<div>
<input id="txtTest" type="text" />
<input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
<input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
<input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
</div>
</body>
</html>
당신이 경우 disable
은 textbox
동적으로 다음 페이지를 새로 고침의는 textbox
대신 사용할 수 없습니다의 원래 상태로 다시 재설정 비활성화 유지됩니다. IE8과 Chrome에서 이것을 시도했으며 예상대로 작동하여 textbox
새로 고칠 때 다시 비활성화되지 않도록 재설정합니다 .
또 다른 흥미로운 정보는 입력이 a checkbox
대신 a 인 경우에도 동일한 작업을 수행한다는 것 textbox
입니다.
답변
이것은 페이지 새로 고침에서 양식 입력 값을 기억하는 Firefox 의 “기능” 입니다. 이 동작을 수정하려면 autocomplete="off"
입력을 포함하는 양식을 설정 하거나 입력에 직접 설정하면됩니다.
이렇게하면 자동 완성이 작동하지 않고 브라우저가 입력 필드의 상태를 기억하지 못합니다.
또는 CTRL + F5를 클릭하여 “하드 새로 고침”할 수 있습니다. 이것은 현재 페이지를 완전히 재설정합니다.
답변
뒤로 버튼을 처리하려면 다음을 수행하십시오 ( 여기에서 )
window.addEventListener('pageshow', PageShowHandler, false);
window.addEventListener('unload', UnloadHandler, false);
function PageShowHandler() {
window.addEventListener('unload', UnloadHandler, false);
}
function UnloadHandler() {
//enable button here
window.removeEventListener('unload', UnloadHandler, false);
}
답변
앞서 언급했듯이 autocomplete="off"
버튼 에 추가 해야합니다.
다음은 HTML 파일 / 템플릿 (일부 가정하에)에서 s 의 경우이를 자동화 하는 sh
+ perl
스 니펫입니다 <button>
.
find /path/to/html/templates -type f -name '*.html' -exec perl -pi -e \
's/(?<=<button )(.*?)(?=>)/@{[(index($1,"autocomplete=")!=-1?"$1":"$1 autocomplete=\"off\"")]}/g' \
{} +
가정은 다음과 같습니다.
-
여는
<button>
태그는 같은 줄에서 시작하고 끝납니다. 그렇지 않을 경우 교체 (그들은 여러 줄에 걸쳐 분할 수 있습니다 즉,)/g
와 함께/gs
합니다 (도움이s
수정 원인.
줄 바꿈에 맞게뿐만 아니라를) -
유효한 HTML (예 :
<
와 사이에 재미있는 문자가 없습니다.>
) 및>
여는 태그 내부에 이스케이프 처리되지 않은 큰 ( ) 이 없습니다 .
답변
이것은 실제로 Firefox 의 공개 버그 입니다. MDNautocomplete
에도 다음과 같은 메모가 있습니다 . (두 번째 노란색 상자로 스크롤) :
참고 :이
autocomplete
속성은 또한 Firefox가 다른 브라우저와 달리 동적 비활성화 상태를 유지하고 페이지로드 전체에 걸쳐<input>
요소,<textarea>
요소 또는 전체 의 동적 검사 를 유지 할지 여부도 제어합니다<form>
. 지속성 기능은 기본적으로 활성화되어 있습니다. 속성 값을 설정autocomplete
off
하면이 기능이 비활성화됩니다. 이는 자동 완성 속성이 유형에 따라 일반적으로 적용되지 않는 경우에도 작동합니다. 버그 654072를 참조하십시오 .
Bootstrap을 사용하는 경우 다음 항목에 관심이있을 수 있습니다.