2013-08-12 2 views
0

에서 no-js 클래스를 제거하는 가장 좋은시기는 언제입니까? 대부분의 개발자와 마찬가지로 js가 사용되고 있는지도 알지 못하고 스타일 웹 사이트도 약간 다르게 적용됩니다.html 태그

그런 다음 페이지 바로 가기를 방지하기 위해 jQuery 준비 함수가 아닌 페이지의 스타일을 지정하기 전에 제목 바로 아래에서이 태그를 사용하여 태그를 잘라내어 긁어 보려고합니다.

<script>var a=document.getElementsByTagName("html")[0];a.className&&(a.className=a.className.replace(/no-js\s?/, ''));</script> 

이것은인가요? 그렇지 않습니다. 그렇지 않은 경우, 어디로 가야합니까? 귀하의 답변을 백업하는 소스하시기 바랍니다!

페이지 준비 속도, 사용자 경험 및 SEO를 고려하십시오.

+0

"점핑"이란 무엇을 의미합니까? – BoltClock

+0

noscript 태그가 아닌가요? – adeneo

+0

noscript로 html 태그를 감싸는 것은 유감스럽지 않습니다. – lededje

답변

1

<head>에서 "unstyled content flash"를 방지하는 가장 좋은 장소입니다. 심지어 인기 Modernizr 라이브러리 suggests this :

우리가 머리에 모더 나이저를 배치하는 것이 좋습니다 이유는 두 가지이다 : HTML5의 칼 (즉 IE에서 HTML5 요소 수)를 <body>하기 전에 실행해야합니다, 당신이 사용하는 경우 Modernizr이 추가 한 CSS 클래스 중 하나를 선택하면 FOUC를 방지 할 수 있습니다.

3

no-js 스타일 시트를 설치할 때 no-js 클래스를 사용할 이유가 없습니다.

<link href="/css/styles.css" type="text/css" rel="stylesheet" /> 
<noscript> 
    <link href="/css/nojs.css" type="text/css" rel="stylesheet" /> 
</noscript> 

자바 스크립트로 처리하는 것은 어색해 보인다. 당신은 javascript에 중요한 이유가없는 요소로부터 클래스를 제거하는 임의의 줄을 자바 스크립트에 가질 것입니다. no-js 버전을 렌더링하는 데 드는 비용은 말할 것도없고 렌더링 후 클래스를 제거하기 때문에 js 버전을 렌더링하는 것이 시작되었습니다.

no-js 스타일 시트를 사용하면 사이트의 js 버전 성능이 향상되고 no-js에 영향을주지 않아도 스크립트를 자유롭게 이동하고 변경할 수 있습니다. 당신의 js가 더 이상 그것과 관련이 없기 때문에 클래스 제거.

당신이 절대적으로 자바 스크립트 로이 일을 주장한다면, 나는 그 요소 바로 다음에 인라인 자바 스크립트로 그것을하는 것이 좋습니다.

<body class="no-js"> 
<script> 
    //document.body.className = ""; 
    document.body.classList.remove("no-js"); 
</script>