문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. <div class="everest-rss"> <h6 class="nav">최근바뀜</h6> <div class="Rssfeed-list" id="rssFeedList"></div> [[특수:최근바뀜|<span class="text-xs label label-info bg-evewiki-main">더 보기</span>]] </div> <html> <script> // 현재 시간을 기준으로 작성 시간을 계산하는 함수 function calculateTimeDifference(pubDate) { var currentDate = new Date(); var postDate = new Date(pubDate); var timeDifference = Math.floor((currentDate - postDate) / (60 * 1000)); // 차이를 분 단위로 계산 if (timeDifference < 60) { return timeDifference + '분 전'; } else if (timeDifference < 1440) { return Math.floor(timeDifference / 60) + '시간 전'; } else { return Math.floor(timeDifference / 1440) + '일 전'; } } // RSS 피드를 가져와서 표시하는 함수 function fetchAndDisplayRss() { // RSS 피드 URL var rss_url = 'https://evewiki.kr/w/api.php?action=feedrecentchanges&format=json&namespace=6&invert=1&formatversion=2'; // fetch API를 사용하여 RSS 피드를 가져오기 fetch(rss_url) .then(response => response.text()) .then(data => { // XML 데이터 파싱 var parser = new DOMParser(); var xmlDoc = parser.parseFromString(data, "text/xml"); // 표시할 최대 게시물 수 var max_posts = 10; // 중복 제목을 확인하기 위한 객체 생성 var titleSet = new Set(); // 리스트 아이템을 추가할 ul 엘리먼트 가져오기 var rssList = document.getElementById('rssFeedList'); // 표시된 게시글 수 var displayedPosts = 0; // 두 번째 항목부터 시작하여 다음 10개를 표시 for (var i = 1; i < xmlDoc.getElementsByTagName('title').length; i++) { var max_title_length = 20; var title = xmlDoc.getElementsByTagName('title')[i].innerHTML; var link = xmlDoc.getElementsByTagName('link')[i].innerHTML; var pubDate = xmlDoc.getElementsByTagName('pubDate')[i].innerHTML; // 작성 시간 가져오기 // 중복된 제목인지 확인 if (!titleSet.has(title)) { titleSet.add(title); // 작성 시간을 계산 var timeDifference = calculateTimeDifference(pubDate); // 리스트 아이템과 앵커 엘리먼트 생성 var listItem = document.createElement('div'); var anchor = document.createElement('a'); listItem.setAttribute('class', 'w-full'); anchor.setAttribute('class', ''); anchor.setAttribute('href', link); anchor.innerHTML = title; // 작성 시간을 표시하는 엘리먼트 생성 var timeElement = document.createElement('div'); timeElement.setAttribute('class', 'inline-block w-16 opacity-50 text-xs'); timeElement.innerHTML = timeDifference; // 앵커를 리스트 아이템에 추가하고 리스트 아이템을 ul 엘리먼트에 추가 listItem.appendChild(timeElement); listItem.appendChild(anchor); rssList.appendChild(listItem); // 표시된 게시글 수 증가 displayedPosts++; // 표시된 게시글이 최대 표시할 게시글 수에 도달하면 종료 if (displayedPosts === max_posts) { break; } } } }) .catch(error => console.error('RSS 피드 가져오기 오류:', error)); } // RSS 피드를 가져와서 표시하는 함수 호출 fetchAndDisplayRss(); </script> </html> 이 문서에서 사용한 틀: 미디어위키:Sitenotice (원본 보기) 이브위키:연습장/대문 문서로 돌아갑니다.