CSS 파일을 동적으로로드하고 CSS가 인 후 js 스크립트를 실행하고 싶습니다.이 문서에 있습니다. 로드 된 CSS에 의해 설정된 요소의 새로운 너비와 높이를 사용하고 싶습니다. 렌더링 후에 js를 실행하는 것이 중요합니다. 가능한가? 나는 jQuery를 사용하고있다.CSS가 동적으로로드되어 렌더링 된 후 javascript를 실행하십시오.
답변
는 SidJS위한 작업 같은 소리 :
SidJS 한 수요에 자바 스크립트 스크립트와 CSS 스타일 시트를 포함 할 수있는 경량의 자바 스크립트 라이브러리입니다. 로딩 프로세스에 연결된 콜백을 지원하여 필요할 때로드중인 리소스를 사용할 수 있음을 보장합니다.
즉, 스타일 시트를 요청하고 콜백 기능을 제공합니다. 콜백 함수는 스타일 시트가로드 될 때 실행됩니다. 예 :
Sid.css("my-sheet.css", function() {
// Perform your width/height logic here.
});
나는 문서가 콜백이 실행되는 시간에 다시 그리기 시간을 준 것이다 경우 완전히 확실하지 않다,하지만 당신은 그것을 밖으로 시도해야합니다. 최악의 시나리오 인 경우 setTimeout
을 사용하여 논리를 100ms 정도 지연하면됩니다.
아마도이 타사 자바 스크립트 라이브러리를 사용하여 목표를 달성하는 것이 가장 좋습니다. 그 이유는 .css 파일을 동적으로 첨부하면 이전 IE에서 문제가 발생하기 때문입니다. CSS를 사용할 수있는 후에로드 이벤트를 수신 할 수 없습니다. , 당신은 당신의 콜백 함수가 적시에 호출되는 것을 보장하기 위해 사소한 일을해야한다. SidJS가이를 확인하므로 걱정할 필요가 없습니다. 'setTimeout'에 대한 필요가 없습니다. Sid는 이미 setTimeout을 만들고 스타일 시트가 DOM에서 사용 가능한지 아닌지 100ms마다 확인합니다. 그러나 절대적으로 필요한 경우에만 수행합니다. – codefactor
감사합니다! 내 프로젝트는 강력한 HTML5 및 CSS3 지원이있는 최신 브라우저 만 사용하므로 setTimeout을 사용하면 문제가되지 않습니다. 나는 나중에 SidJS를 시도 할 것이다. 다시 한 번 감사드립니다 – RobbeR
귀하의 필요를 이해합니다.하지만 모든 대안이 실패한 후에 만하기를 적극 권장합니다.
몇 개의 CSS 파일이 있습니까? 그들과 얼마나 다른가요?
CSS 파일을로드하는 대신 JS에서 스타일을 설정하는 것이 좋습니다.
JS가 CSS 파일에서로드 된 스타일을 알아야 할 필요가 있다면 JS는 해당 파일의 위치를 알아야합니다. 파일 URL 대신 정보를 제공하는 것이 더 쉽지 않습니까?
페이지가로드 된 후로드 할 파일을 정확히 알 수없는 이유를 모른 채 대안에 대해 생각하기가 어렵습니다. 일부 사용자 입력을 기반으로하는 경우 클래스 집합에 대해 서로 다른 스타일의 CSS 파일을 사용하고 JS를 사용하여 요소 클래스를 변경함으로써 클래스 스타일을 제거하고 새 클래스 스타일을 적용 할 수 있습니다.
항상 모든 스타일을 고유 한 파일에 보관하여 체계적이고 컴팩트하게 유지하면서 항상 재사용을 시도하십시오. 그런 다음 JS를 사용하여 필요에 따라 스타일, 클래스 및 요소를 변경합니다.
문서를 해킹하는 종류의 종류는 알고 있지만 내 목표는 프로젝트를 더욱 편하게 만들어야한다는 것입니다. 그래서 js로 CSS를 전달하는 것이 가장 좋은 생각입니다. – RobbeR
- 1. 매번 페이지가로드 된 후 javascript를 실행하십시오.
- 2. 페이지가 렌더링 된 후 CSS가 적용됩니다.
- 3. 외부 글꼴이 완전히로드 된 후 JavaScript를 실행하십시오.
- 4. 요소에 초점을 맞춘 후 javascript를 실행하십시오.
- 5. 지시문 템플릿을로드 한 후 Javascript를 실행하십시오.
- 6. 런타임 후 PHP 파일에서 Javascript를 실행하십시오.
- 7. 프레임이 완전히 렌더링 된 후 javascript를 호출하는 방법은 무엇입니까?
- 8. htmlUnit에서 Javascript를 실행하십시오.
- 9. ajaxed javascript를 실행하십시오.
- 10. 동적으로 생성 된 iframe에서 javascript를 실행하십시오.
- 11. AJAX로드 된 콘텐츠에서 Javascript를 다시 실행하십시오.
- 12. Javascript를 엄격하게 실행하십시오.
- 13. lightSlider에서 Javascript를 실행하십시오.
- 14. ColdFusion 페이지로드로 javascript를 실행하십시오.
- 15. Robotframework Selenium2 Javascript를 실행하십시오
- 16. html-node.js에서 javascript를 실행하십시오.
- 17. 양식 제출시 Javascript를 실행하십시오.
- 18. 렌더링시 렌더링 된 텍스트 렌더링 후
- 19. Ember 앱 위에 javascript를 실행하십시오.
- 20. CSS가 완전히로드 된 후 Javascript가 실행됩니다.
- 21. jquery가 추가 된 후 CSS가 누락되었습니다.
- 22. javascript를 사용하여 PDF 렌더링
- 23. 게시 요청에서 데이터를 가져온 후 LoadData로 WebView에서 JavaScript를 실행하십시오.
- 24. Django views.py를 보내서 JavaScript를 반환하고 실행하십시오.
- 25. jQuery .before() javascript를 다시 실행하십시오.
- 26. 첫 페이지에 Javascript를 실행하십시오 load
- 27. XML 요청 전에 javascript를 실행하십시오.
- 28. // = require가 발생하기 전에 javascript를 실행하십시오.
- 29. Flex 모바일 프로젝트에서 Javascript를 실행하십시오.
- 30. 배열에서 첫 번째 렌더링 된 객체에 CSS가 적용되지 못하게 함
CSS 뒤에 자바 스크립트 코드를 넣으시겠습니까? – Piccolo
JS로 JS를 dinamically로드하고 싶습니다. 그래서 옵션이 아닙니다. – RobbeR