PageSourceSearch

https://news.chosun.com/gnb2021/assets/js/gnb2020_nofont.js

js chosun.com collected 2026-09-24 07:32:17 UTC 15,936 bytes, 371 lines download raw bytes

1// GNB simple type
2
3
4// markup
5document.write('\
6  <div id="nav2020-head" class="">\
7    <div class="nav2020-inner">\
8      <h1 class="nav2020-logo">\
9        <a href="#" target="_blank" title="새창열림"><img class="logo-img" src="" alt="" /></a>\
10      </h1>\
11      <h2 class="nav2020-title">\
12        <a href="#"></a>\
13      </h2>\
14      <div class="nav2020-links">\
15        <div id="nav2020-media">\
16          <button class="nav2020-dropBtn">\
17            조선미디어그룹\
18          </button>\
19          <div class="media-list">\
20            <div class="media-inner">\
21              <a href="https://sports.chosun.com/company/index.htm" target="_blank" title="새창열림">스포츠조선</a>\
22              <a href="http://www.chosunis.com/" target="_blank" title="새창열림">조선아이에스</a>\
23              <a href="http://company.healthchosun.com/" target="_blank" title="새창열림">헬스조선</a>\
24              <a href="http://csmne.co.kr/#company" target="_blank" title="새창열림">CS M&E</a>\
25              <a href="http://chosunnewspress.chosun.com/client/info/info.asp" target="_blank" title="새창열림">조선뉴스프레스</a>\
26              <a href="https://biz.chosun.com/about/company_info.html" target="_blank" title="새창열림">조선비즈</a>\
27              <a href="http://www.tvchosun.com/pressroom/index.cstv" target="_blank" title="새창열림">TV조선</a>\
28              <a href="http://pr.dizzo.com/" target="_blank" title="새창열림">디지틀조선</a>\
29            </div>\
30          </div>\
31        </div><!-- media end -->\
32        <div id="nav2020-login" class="login-user">\
33          <a href="#"><span class="user"></span>로그인</a>\
34          <div class="login-inner">\
35            <ul class="user-list">\
36              <li><a href="//www.chosun.com/mypage/profile/">개인정보</a></li>\
37              <li><a href="//www.chosun.com/mypage/comments/">내 100자평</a></li>\
38              <li><a href="//www.chosun.com/mypage/bookmark/">북마크한 기사</a></li>\
39            </ul>\
40          </div>\
41        </div><!-- login end -->\
42      </div><!-- links end-->\
43    </div><!-- nav-inner end -->\
44    <div class="nav2020-line"></div>\
45  </div><!-- nav-head end -->\
46');
47
48
49// css import
50document.write('\
51  <style>\
52  @charset "utf-8";\
53  #nav2020{z-index:1000}\
54  #nav2020-head{position:relative;width:100%;height:39px;background-color:transparent}\
55  .sticky{position:fixed;top:0;width:100%}\
56  .nav2020-inner{height:100%;margin:0 auto}\
57  #nav2020-head.dark{background-color:#222}\
58  #nav2020-head.dark .nav2020-title a{color:#d7d7d7}\
59  #nav2020-head.dark #nav2020-media .nav2020-dropBtn{color:#d7d7d7}\
60  #nav2020-head.dark #nav2020-media::after{background-image:url(//news.chosun.com/gnb2021/assets/images/arrowDownW.png)}\
61  #nav2020-head.dark #nav2020-login .user{background-image:url(//news.chosun.com/gnb2021/assets/images/loginW.png)}\
62  #nav2020-head.dark #nav2020-login a{color:#d7d7d7}\
63  #nav2020-head.light{background-color:#fff}\
64  #nav2020-head.light .nav2020-title a {color: #222;}\
65  #nav2020-head.light #nav2020-media .nav2020-dropBtn {color: #222;}\
66  #nav2020-head.light #nav2020-login a {color: #222;}\
67  #nav2020-head.transparent{background-color:transparent}\
68  #nav2020-head.transparent .nav2020-title a{color:#d7d7d7}\
69  #nav2020-head.transparent #nav2020-media .nav2020-dropBtn{color:#d7d7d7}\
70  #nav2020-head.transparent #nav2020-media::after{background-image:url(//news.chosun.com/gnb2021/assets/images/arrowDownW.png)}\
71  #nav2020-head.transparent #nav2020-login a{color:#d7d7d7}\
72  #nav2020-head.transparent #nav2020-login .user{background-image:url(//news.chosun.com/gnb2021/assets/images/loginW.png)}\
73  #nav2020-head.light .nav2020-line{height:1px;background:#d7d7d7}\
74  #nav2020-head.dark .nav2020-line{height:1px;background:#222}\
75  #nav2020-head.transparent .nav2020-line{height:1px;background:#d7d7d7;opacity:.5}\
76  #nav2020-head .nav2020-logo{position:absolute;left:20px;bottom:50%;margin-bottom:-13px;}\
77  #nav2020-head .nav2020-logo a{display:block;width:98px;height:25px}\
78  #nav2020-head .nav2020-logo img{width:100%}\
79  #nav2020-head .nav2020-title{text-align:center;position:absolute;
79left:50%;top:46%;transform:translate(-50%,-50%)}\
80  #nav2020-head .nav2020-title a{font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-weight:700;font-size:15px}\
81  #nav2020-head .nav2020-links{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:0;z-index:999}\
82  #nav2020-head .nav2020-links>div{display:inline-block}\
83  #nav2020-head #nav2020-media{position:relative;display:inline-block;padding-right:16px}\
84  #nav2020-head #nav2020-media::after{content:"";display:block;position:absolute;right:0;top:50%;margin-top:-8px;width:16px;height:16px;background:url(//news.chosun.com/gnb2021/assets/images/arrowDownB.png) no-repeat;background-size:cover}\
85  #nav2020-head #nav2020-media:hover::after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}\
86  #nav2020-head #nav2020-media .nav2020-dropBtn{font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-size:14px;cursor:pointer;outline:none;border:none;background:transparent;padding:12px 0}\
87  #nav2020-head .media-list{display:none;position:absolute;right:0;padding-top:8px;width:140px}\
88  #nav2020-head .media-inner{background-color:#fff;padding:8px 0;border-radius:3px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);z-index:1}\
89  #nav2020-head .media-list a{color:#222;padding:12px 16px;text-decoration:none;display:block;font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-size:15px;font-weight:400}\
90  #nav2020-head .media-list a:hover{background-color:#f7f7f7;font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-weight:700}\
91  #nav2020-head #nav2020-media:hover .media-list{display:block}\
92  #nav2020 .media-list::-webkit-scrollbar-thumb{background:#d7d7d7;border-radius:3px}\
93  #nav2020 .media-list::-webkit-scrollbar-button{display:none}\
94  #nav2020-head #nav2020-login{position:relative;margin-left:16px}\
95  #nav2020-head #nav2020-login a{display:block;font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-weight:700;font-size:12px;padding:10px 0;text-decoration:none}\
96  #nav2020-head #nav2020-login .user{display:inline-block;width:20px;height:20px;background:url(//news.chosun.com/gnb2021/assets/images/loginB.png) no-repeat;background-size:cover;vertical-align:middle}\
97  #nav2020-head #nav2020-login .login-inner{display:none;position:absolute;padding-top:8px;right:0;width:140px}\
98  #nav2020-head #nav2020-login .user-list{background-color:#fff;padding:8px 0;border-radius:3px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2)}\
99  #nav2020-head #nav2020-login:hover .login-inner{display:block}\
100  #nav2020-head #nav2020-login .user-list a{color:#222;padding:12px 16px;text-decoration:none;display:block;font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-size:15px;font-weight:400}\
101  #nav2020-head #nav2020-login .user-list a:hover{background-color:#f7f7f7;font-family:AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-weight:700}\
102  #nav2020-head #nav2020-media.show{display:inline-block}\
103  #nav2020-head #nav2020-media.hide{display:none}\
104  #nav2020-head #nav2020-login.show{display:inline-block}\
105  #nav2020-head #nav2020-login.hide{display:none}\
106  #nav2020-bar{background-color:#fff;border-bottom:2px solid #222}\
107  #nav2020-bar ul{overflow:auto;white-space:nowrap;text-align:center;font-size:0}\
108  #nav2020-bar li{display:inline-block;margin:0 16px}\
109  #nav2020-bar li a{position:relative;display:block;padding:10px 0;font-family:"ChosunMGothicBold",AppleSDGothicNeo-Regular,"Malgun Gothic","맑은 고딕",dotum,"돋움",sans-serif;font-weight:700;font-size:15px}\
110  #nav2020-bar li a:hover::after,#nav2020-bar li a.current::after{content:"";width:100%;height:2px;background-color:#222;position:absolute;left:0;bottom:0}\
111  @media screen and (max-width: 767px) {\
112  #nav2020-head .nav2020-logo{left:10px}\
113  #nav2020-head .nav2020-title{display:none}\
114  #nav2020-head .nav2020-links{right:10px}\
115  #nav2020-head .nav2020-links #nav2020-media{display:none}\
116  #nav2020-head .nav2020-links #nav2020-login a{font-size:0}\
117  #nav2020-head #nav2020-login .user-list a{font-size:15px}\
118  #nav2020.sub #nav2020-head .nav2020-logo a{width:24px;height:24px}\
119  #nav2020.sub #nav2020-head .nav2020-title{display:block;left:36px;top:50%;transform:translateY(-45%)}\
120  #nav2020.sub #nav2020-bar{display:none}\
121  #nav2020-head #nav2020-login.clicked .login-inner{display:none}\
122  #nav2020-head #nav2020-login .login-inner{display:none}\
123  #nav2020-head #nav2020-login:hover .login-inner,#nav2020-head #nav2020-login.clicked .login-inner {display: none;}\
124  }\
125  </style>\
126    ');
127
128
129
130
131
132// 캐싱
133var navElem = document.querySelector('#nav2020');
134var navheadElem = document.querySelector('#nav2020-head');
135var titleElem = document.querySelector('.nav2020-title>a');
136var logoLink = document.querySelector('.nav2020-logo>a');
137var logoElem = document.querySelector('.logo-img');
138var mediaElem = document.querySelector("#nav2020-media");
139var loginElem = document.querySelector('#nav2020-login')
140var navInElem = document.querySelector('.nav2020-inner');
141
142
143
144
145var simpleElem = function (logoImg, gnbColor, title, mediaLink, loginLink, stickyNavi, gnbUrl, pageCheck, widthVal) {
146
147  // setting
148  //
149  // max-width값 체크
150  // 페이지 체크(sub/main)
151  // 모바일 체크
152  // 빈값 체크
153  // 스티키 효과
154
155  // 변경 가능 요소
156  //
157  // 1. 로고
158  // 2. 컬러
159  // 3. 서비스명
160  // 4. 서비스명 링크
161  // 5. 조선미디어그룹 사용여부
162  // 6. 로그인 사용여부
163  // 7. 메뉴 사용여부
164
165
166
167
168  // 빈값 체크
169  // 넘어온 값이 빈값인지 체크합니다. 
170  // !value 하면 생기는 논리적 오류를 제거하기 위해 
171  // 명시적으로 value == 사용 
172  // [], {} 도 빈값으로 처리
173  // 
174  var isEmpty = function (value) {
175    if (value == "" || value == null || value == undefined || (value != null && typeof value == "object" && !
176        Object
177        .keys(value).length)) {
178      return true;
179    } else {
180      return false
181    }
182  };
183
184  // 모바일 체크
185  function chkMobile() {
186    var UserAgent = navigator.userAgent;
187    if (UserAgent.match(
188        /iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson/i
189      ) != null || UserAgent.match(/LG|SAMSUNG|Samsung/) != null) {
190      return true;
191    } else {
192      return false;
193    }
194  }
195
196
197
198
199
200
201  // 1. 로고타입 및 링크
202  function logoType(logoImg) {
203    if (logoImg === 'chosunF') { // 조선로고 #fff
204      logoElem.src = "//news.chosun.com/gnb2021/assets/images/chosunF.png";
205      logoLink.href = "//www.chosun.com/";
206    } else if (logoImg === 'chosunB') { // 조선로고 블랙
207      logoElem.src = "//news.chosun.com/gnb2021/assets/images/chosunB.png";
208      logoLink.href = "//www.chosun.com/";
209    } else if (logoImg === 'chosunW') { // 조선로고 화이트
210      logoElem.src = "//news.chosun.com/gnb2021/assets/images/chosunW.png";
211      logoLink.href = "//www.chosun.com/";
212    } else if (logoImg === 'bizW') { // 조선비즈 화이트
213      logoElem.src = "//news.chosun.com/gnb2021/assets/images/bizW.png";
214      logoLink.href = "//biz.chosun.com/";
215    } else if (logoImg === 'bizB') { // 조선비즈 블랙
216      logoElem.src = "//news.chosun.com/gnb2021/assets/images/bizB.png";
217      logoLink.href = "//biz.chosun.com/";
218    } else if (logoImg === 'biz10W') { // 조선비즈 10주년 화이트
219      logoElem.src = "//news.chosun.com/gnb2021/assets/images/biz10W.png";
220      logoLink.href = "//biz.chosun.com/";
221    } else if (logoImg === 'biz10B') { // 조선비즈 10주년 블랙
222      logoElem.src = "//news.chosun.com/gnb2021/assets/images/biz10B.png";
223      logoLink.href = "//biz.chosun.com/";
224    } else {
225      console.log('로고 없음');
226    }
227  }
228
229  // 2. 컬러
230  function pickColor(gnbColor) {
231    if (gnbColor === 'dark') {
232      navheadElem.classList.add("dark");
233    } else if (gnbColor === 'light') {
234      navheadElem.classList.add("light");
235    } else if (gnbColor === 'transparent') {
236      navheadElem.classList.add("transparent");
237    } else {
238      console.log('컬러 지정 안됨');
239    }
240  }
241
242  // 3. 서비스명
243  function gnbTitle(title) {
244    if (title) {
245      titleElem.innerHTML = title;
246      titleElem.href = gnbUrl;
247    } else {
248      // console.log('타이틀 없음')
249    }
250  }
251
252  // 4. 서비스그룹 사용 체크
253  function isMediaLink(mediaLink) {
254    if (mediaLink === 'show') {
255      mediaElem.classList.add('show');
256      // // ui 처리
257      // mediaElem.addEventListener('mouseover', function () {
258      //   mediaElem.classList.add('active')
259      // });
260      // mediaElem.addEventListener('mouseout', function () {
261      //   mediaElem.classList.remove('active')
262      // });
263
264
265    } else if (mediaLink === 'hide') {
266      mediaElem.classList.add('hide');
267    } else {
268      console.log('서비스그룹 사용안함');
269    }
270  }
271
272  // 5. 로그인 사용 체크
273  function isLogin(loginLink) {
274    if (loginLink === 'show') {
275      loginElem.classList.add('show');
276    } else if (loginLink === 'hide') {
277      loginElem.classList.add('hide');
278    } else {
279      // console.log('로그인 사용안함');
280    }
281  }
282
283
284  // 6. 메뉴사용
285  function isScrollNavi(stickyNavi) {
286
287    if (stickyNavi === "sticky") {
288      var menuElem = document.querySelector("#nav2020-bar"); // nav-menu 선택
289      var sticky = menuElem.offsetTop; // nav-menu의 위치 값(포지션)을 구해온다
290      // nav-menu가 스크롤 위치에 닿았을 때 sticky 클래스를 추가하고, 제거한다.
291      function stickyFunc() {
292        if (window.pageYOffset >= sticky) {
293          menuElem.classList.add("sticky");
294        } else {
295          menuElem.classList.remove("sticky");
296        }
297      }
298      window.addEventListener('scroll', stickyFunc);
299    } else {
300      return isEmpty(stickyNavi);
301    }
302  }
303
304
305  // 8. maxwidth 값 셋팅
306  function useWidth(widthVal) {
307    if (widthVal) {
308      navInElem.style.maxWidth = widthVal + 'px';
309      navInElem.style.position = "relative";
310    } else if (widthVal === isEmpty()) {
311      console.log('max-width: 없음');
312    } else {
313
314    }
315  }
316
317
318
319
320
321  useWidth(widthVal);
322
323  isScrollNavi(stickyNavi);
324  logoType(logoImg);
325  pickColor(gnbColor);
326  gnbTitle(title);
327  isMediaLink(mediaLink);
328  isLogin(loginLink);
329
330  // 메인페이지 & 서브페이지 체크
331
332  function checkPage(pageCheck) {
333    if (pageCheck === "main") {
334      // 메인
335      navElem.classList.add("main");
336
337    } else if (pageCheck === "sub") {
338      // 서브
339      navElem.classList.add("sub");
340
341      // 모바일 서브인 경우
342      if (chkMobile()) {
343        if (navElem.classList.contains('sub') && navheadElem.classList.contains("dark")) {
344          logoElem.src = '//news.chosun.com/gnb2021/assets/images/homeW.png'
345          logoLink.href = gnbUrl;
346        } else if (navElem.classList.contains('sub') && navheadElem.classList.contains("transparent")) {
347          logoElem.src = '//news.chosun.com/gnb2021/assets/images/homeW.png'
348          logoLink.href = gnbUrl;
349        } else if (navElem.classList.contains('sub')) {
350          logoElem.src = '//news.chosun.com/gnb2021/assets/images/homeB.png'
351          logoLink.href = gnbUrl;
352        }
353      }
354    } else {
355      // 파악불가
356
357    }
358  }
359  checkPage(pageCheck);
360
361
362};
363
364
365
366
367
368
369
370// window.addEventListener('load', simpleElem);
371// window.addEventListener('resize', simpleElem);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.