이전 웹 사이트에 문제가 있습니다. 그것의 모든 자바 스크립트 코드는 getElemenById 함수를 사용합니다. 그러나 사이트 마크 업 태그에는 id 속성이 없으며 대신 name 속성 만 있습니다. IE에서는 여전히 작동하지만 브라우저는 name 속성을 사용하여 요소를 반환합니다. 다른 모든 브라우저의 경우 JS에서 오류가 발생합니다. 다른 브라우저에서이 기능을 오버로드하여 웹 사이트가 다른 브라우저와 호환되도록 만드는 방법이 있습니까?JavaScript getElementById 함수 오버로드
답변
Java 또는 C와 같이 강력한 형식의 언어에서 사용하는 의미에서 JavaScript의 함수를 "오버로드"할 수있는 방법은 없습니다. 사실 자바 스크립트의 모든 함수는 이미 이런 식으로 오버로드되어 있습니다. 임의의 수와 유형의 인수로 모든 함수를 호출 할 수 있습니다.
그러나 할 수있는 일은 기존 버전 앞에 고유 한 프록시를 삽입하고 선호하는 모든 동작으로 프록시를 구현하는 것입니다. 예를 들면 다음과 같습니다.
좋은 해결책! +1 –
감사합니다. 그게 내게 최고야. –
getElementById
은 제대로 작동하지 않을 것입니다. 검색을 수행하고이 같은 무언가를 대체하기 쉬운만큼 소리 :
// Replace
document.getElementById("foo");
// With
myGetElementById("foo", document);
// Replace
myElement.getElementById("foo");
// With
myGetElementById("foo", myElement);
그런 다음 수 myGetElementById
당신이 원하는대로, 기존의 IE에서 발생할 수있는 무엇을 당신이 getElementById
을 무시하지 않을 경우에 대한 걱정없이.
getElementsByName을 시도하십시오. 이것은 이름과 관련하여 요소 컬렉션을 얻는 데 사용됩니다.
감사합니다. 나는 알고있다. 그러나이 오래된 웹 사이트는 많은 일을하고있다. 방금 해결 방법을 찾지 못했습니다. –
- 1. Javascript getElementByID
- 2. javascript getElementById 문제 (숨김)
- 3. JavaScript - getElementById (무엇을합니까?)
- 4. 함수 오버로드
- 5. Javascript getElementById <img>
- 6. JavaScript getElementByID()가 작동하지 않습니다.
- 7. getElementbyID?
- 8. QSqlTableModel, 데이터 함수 오버로드
- 9. P/Invoke 함수 오버로드
- 10. 오버로드> 멤버 함수
- 11. 함수 오버로드 오류
- 12. 모듈에 오버로드 된 함수
- 13. 함수 템플릿 오버로드
- 14. 템플릿 및 함수 오버로드
- 15. C++ 함수 오버로드 확인
- 16. 수퍼 클래스의 함수 오버로드
- 17. 익명 함수 오버로드
- 18. GWT : JSNI 함수 호출 getElementById() Null을 반환합니다.
- 19. jQuery의 getElementById
- 20. 오버로드 된 함수 호출이 모호합니다.
- 21. 가변 인수 및 함수 오버로드
- 22. PHP가 부모 클래스에서 함수 오버로드
- 23. 가변 템플릿 함수 ostream에서 오버로드
- 24. C++ 함수 오버로드 유사한 변환
- 25. ObjectDataSource 및 오버로드 된 함수
- 26. C++ 오버로드 된 함수 문제
- 27. 문제 Android에서 오버로드 함수 Renderscript
- 28. C++에서 오버로드 된 함수
- 29. 템플릿 전문화 VS 함수 오버로드
- 30. C++ 오버로드 된 함수 오류
다른 브라우저에서 다르게 작동하도록 시도하고 해킹하지 말고 올바르게 작동하도록 코드를 수정하는 것이 좋습니다. 'getElementsByName' 메서드를 사용하여 이름으로 요소를 찾을 수 있습니다. 이름이 ID와 같이 고유하지 않을 것으로 예상되므로 배열을 반환합니다. –