1(function () { 2 "use strict"; 3 4 // CMS ç±æ¥ã®å¤ (TITLE / SPECIAL_KEY) ã innerHTML ã¸åãè¾¼ãåã« HTML ã¨ã¹ã±ã¼ããã 5 // ããã¹ã/屿§ã³ã³ããã¹ãã§ã® XSS ãé²ãã 6 function escapeHtml(str) { 7 return String(str) 8 .replace(/&/g, "&") 9 .replace(/</g, "<") 10 .replace(/>/g, ">") 11 .replace(/"/g, """) 12 .replace(/'/g, "'"); 13 } 14 15 function fetchData(api, successCallback, errorCallback) { 16 $.ajax({ 17 url: api, 18 success: successCallback, 19 error: errorCallback, 20 }); 21 } 22 23 document.addEventListener("DOMContentLoaded", function () { 24 25 function renderList(targetElement, data, labelText) { 26 var listHTML = ""; 27 var itemCount = data && data.DATAS ? data.DATAS.length : 0; 28 29 if (itemCount === 0) { 30 targetElement.innerHTML = '<li class="newsticker-lists__item">ãªã¯ã¨ã¹ãå¦çã«æéãããã£ã¦ããã¾ãã®ã§ããã°ãããã¦ããå度ã¢ã¯ã»ã¹ããé¡ãè´ãã¾ãã</li>'; 31 return; 32 } 33 34 // ææ°ã®5ä»¶ã ããåå¾ 35 var displayData = data.DATAS.slice(0, 5); 36 37 for (var i = 0; i < displayData.length; i++) { 38 var item = displayData[i]; 39 var formattedDate = item.OPEN_FROM.replace(/-/g, "").substr(0, 8); 40 var year = formattedDate.substr(0, 4); 41 var month = formattedDate.substr(4, 2); 42 var day = formattedDate.substr(6, 2); 43 var displayDate = year + "." + month + "." + day; 44 var labelText = item.TYPE === "1" ? "ãç¥ãã" : "ãã¥ã¼ã¹ãªãªã¼ã¹"; 45 var url = getTargetUrl(item.SPECIAL_KEY, labelText); 46 var listItemHTML = '<li class="newsticker-lists__item">\n' + 47 '<a href="' + escapeHtml(url) + '">\n' + 48 '<div class="newsticker-ttl">\n' + 49 '<span class="newsticker-date">' + displayDate + '</span>\n' + 50 '<span class="newsticker-category">' + labelText + '</span>\n' + 51 '</div>\n' + 52 '<div class="newsticker-subject">' + escapeHtml(item.TITLE) + '</div>\n' + 53 '</a>\n' + 54 '</li>\n'; 55 56 listHTML += listItemHTML; 57 } 58 59 targetElement.innerHTML = listHTML; 60 61 // Slickã®åæå 62 initSlickSlider(); 63 } 64 65 function displayCombinedList(newsApi, targetElement) { 66 fetchData(newsApi, 67 function (newsData) { 68 // æ¥ä»ã§éé ã«ã½ã¼ã 69 newsData.DATAS.sort(function (a, b) { 70 return b.OPEN_FROM.localeCompare(a.OPEN_FROM); 71 }); 72 73 // çµåããããªã¹ããæå®ã®è¦ç´ ã«è¡¨ç¤º 74 renderList(targetElement, newsData); 75 }, 76 function () { 77 renderList(targetElement, null, ""); 78 } 79 ); 80 } 81 82 function initSlickSlider() { 83 $('.newsticker-slide').slick({ 84 autoplay: false, 85 infinite: true, 86 arrows: true, 87 dots: false, 88 pauseOnFocus: false, 89 pauseOnHover: false, 90 slidesToShow: 1, 91 prevArrow: ".newsticker-lists__controller-prev", 92 nextArrow: ".newsticker-lists__controller-next", 93 appendDots: ".newsticker-lists__controller" 94 }); 95 } 96 97 // newstickerã«çµåããããªã¹ãã表示 98 displayCombinedList("/cms/list?p-len=5", document.querySelector(".newsticker-lists")); 99 }); 100 101 function getTargetUrl(specialKey, labelText) { 102 // labelText ã«åºã¥ãã¦æ£ãããã¹ãçµã¿è¾¼ã 103 // è¿ã URL ã¯å¿ ã "/notice/" ã "/news/" ã§å§ã¾ãç¸å¯¾ãã¹ã®ãããspecialKey ã« 104 // "javascript:" çãå ¥ãã¦ãæ¬ä¼¼ãããã³ã« URL ã«ã¯ãªããªãã屿§è±åºã¯å¼ã³åºãå´ã® escapeHtml ã§é²æ¢ã 105 var basePath = labelText === "ãç¥ãã" ? "/notice/" : "/news/"; 106 return basePath + specialKey + '.html'; 107 } 108})();
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.