오늘 페이지의 기능을 사용할 수 없다는 버그가 보고되었습니다. 콘솔을 열고 오류를 찾으세요: 객체가 함수가 아닙니다.
이 기능은 최근에 터치되지 않았는데 갑자기 문제가 발생하는 이유는 무엇입니까? 모든 주요 브라우저는 온라인에 접속했을 때 테스트되었습니다.
이상하지만 그래도 문제는 해결됩니다. 코드를 살펴보면 라디오 객체의 name 속성이 함수 이름과 동일한 이름을 가지고 있음을 발견했습니다. 코드는 다음과 같습니다.
<body> <input type="radio" name="test" onclick="test();"/> <br/> <form action=""> <input type="radio" name="test" onclick="test();"/> </form> </body> <script type="text/javascript"> function test(){ alert("11"); } </script>
함수 이름을 수정하여 문제를 해결했습니다. 하지만 함수 이름이 예전과 같아서 정상적으로 사용할 수 있었기 때문에 근본 원인을 찾을 수 없었습니다. 코드 수정
onclick="경고(테스트);"
"object HTMLInputElement"가 팝업되고 브라우저가 테스트를 dom 개체로 구문 분석하는 것을 발견했습니다.
스크립트 테스트 후에도 함수인 Alert(test);는 여전히 함수입니다.
svn 버전을 보니 다른 기능을 할 때 라디오를 마무리하는 폼을 추가한 것을 발견했습니다. 이로 인해 브라우저 구문 분석 오류가 발생합니다.
요약: 변경되지 않은 코드는 문제가 아닐 수도 있습니다. 변경으로 인해 다른 문제가 발생했을 수도 있습니다. 일부 브라우저 호환성 문제는 코드 불규칙으로 인해 발생합니다. 앞으로는 표준화된 방식으로 코드를 작성해야 합니다.
양식 추가 후 브라우저 파싱 문제가 발생하는 이유를 전문가가 아시는 분 계시면 알려주실 수 있나요? 매우 감사합니다!