Nice programing

경고 소스를 찾는 가장 좋은 방법 : getElementById ()에 빈 문자열이 전달되었습니다.

nicepro 2021. 1. 8. 22:51
반응형

경고 소스를 찾는 가장 좋은 방법 : getElementById ()에 빈 문자열이 전달되었습니다.


경고 : getElementById ()에 빈 문자열이 전달되었습니다.
소스 파일 : chrome : //browser/content/browser.xul
행 : 0

며칠 전 내 사이트를 개발하는 동안 위의 메시지를 받기 시작했습니다. 모든 것이 제대로 작동하고 있지만 (또는 적어도 나는 있다고 생각합니다) 이것이 어디에서 오는지 알고 싶습니다. 나는 jQuery를 사용하므로 getElementById()직접 사용하지 마십시오 . 또한 Firebug와 Firefox 용 웹 개발자 확장이 실행 중입니다.

나는 jQuery 선택에 주어진 빈 문자열을 확인하거나 jQuery 자체를 조사하기 위해 힘들게 코드를 넣을 수 있지만 내 기술은 미미하므로 누군가가 소스를 빨리 찾는 데 좋은 아이디어가 있는지 여기에서 묻습니다. 경고 메시지.


Source File: chrome://browser/content/browser.xul

이는 오류가 코드가 아닌 Firefox 확장에 있음을 의미합니다.


'#'선택기로 쿼리하는 경우-선택기가 고유한지 확인하십시오 (유일해야 함). 그렇지 않으면 ff에서이 오류가 발생합니다.


제 경우에는 Firefox가 양식의 입력 필드에서 HTML5 검사를 수행하여 발생했습니다. "필수"속성이 양식 요소에서 제거되면 모든 것이 다시 정상적으로 작동하는 것처럼 보였습니다.

이것은 필드가 비어 있지 않아야하는 모델 유효성 검사 규칙을 기반으로 이러한 속성을 생성하는 MVC 프레임 워크에서 가져온 것입니다.


이 답변은 왜 그런 일이 발생했는지 찾는 데 정말 도움이 되었기 때문에 공유하기로 결정했습니다.

다음 코드를 외부에 배치 했고이document.ready 오류가 발생했습니다.

// Enable Line Items ONLY AFTER general info is filled out!
$( "#client_estimate_continue_next" ).click(function(e) {
//e.preventDefault();
console.log(this.id + ' click event fired.');

// DO SOMETHING...

});

단순히 내부에 배치하여 오류를 수정할 수있었습니다. document.ready

추가 정보:

오류가 발생했지만 제 경우에는 FireFox에 따라 자체 스크립트에서 발생했습니다 .

예를 들어 아직 완전히 렌더링되지 않은 요소의 ID를 참조했기 때문에 오류가 발생했다고 생각합니다. 준비되지 않았습니다 .

경고 : getElementById ()에 빈 문자열이 전달되었습니다.


Firefox에서이 경고를 받았습니다.

방금이 경고를 보았고 입력 필드에 대한 레이블이 있지만 속성에 대한 레이블이 설정 / 비어 있지 않았으므로 for 속성을 완료하면이 문제가 해결되었습니다.

// Label's for attribute not set which caused the warning in FF

e.g. <label for=''>Text</label><input type="text" name="text" id="text" value="" />

참조 URL : https://stackoverflow.com/questions/10790435/best-way-to-locate-source-of-warning-empty-string-passed-to-getelementbyid

반응형