DOM 조작을 통해 웹 사이트에 html의 일부를 포함하려고합니다. 먼저 CSS를로드 한 다음 HTML을로드하십시오. 여기 내 코드가있다.모바일 Safari, Chrome 및 Windows Safari에서 onLoad 문제가 발생했습니다.
function load_css() {
var css_file = document.createElement("link");
css_file.rel = "stylesheet";
css_file.type = "text/css";
css_file.href = "http://domain/path/to/css";
if (css_file.readyState) {
css_file.onreadystatechange = function() {
if (css_file.readyState === "loaded" || css_file.readyState === "complete") {
css_file.onreadystatechange = null;
load_module();//ajax call to embed html
}
};
} else {
css_file.onload = function() {
load_module();//ajax call to embed html
};
}
document.getElementsByTagName("head")[0].appendChild(css_file);
}
IE8 이상, Firefox, Chrome, Opera (Linux, Mac, Windows), Safari (Mac, iPad)에서 완벽하게 작동합니다. 하지만 Safari (Windows, iPhone) 및 Chrome (Android)에서는 작동하지 않습니다.
대체 솔루션은 CSS 파일을 기다리지 않고 HTML을로드하는 것이지만 사용자가 CSS 파일과 HTML (스타일이없는 HTML이 스타일이 적용된 HTML로 바뀌는) 사이의 동기화 문제를 경험하지 못하도록하고 싶지 않습니다.
이 작업을 Safari (Windows, iPhone) 및 Chrome (Android)에서 수행하는 가장 좋은 방법은 무엇입니까?
adroid에서 WebView를 사용하는 경우 html 페이지를 웹 서비스로 사용하고로드 HTML 소스 이후에 사전 캐시합니다. 그것은 동적 js 파일로드를 제공하지 않습니다, 나는 동적으로로드 CSS를 시도하지만로드 js를 동적으로 시도했지만 작동하지 않습니다. – erhan
아니요 WebView가 아닙니다. 나는 브라우저 @erhan을 참조한다. – erdimeola