2026, 새로운 도약을 시작합니다.

유튜브 링크 표현

이 코드를view.skin.php에 추가하세요

[code]<script>

// bo_v_con 요소 선택

const boVCon = document.getElementById('bo_v_con');

// 유튜브 링크 형식 정의

const youtubeDomains = [

  'youtube.com',

  'youtu.be',

  'www.youtube.com'

];

// 정규 표현식 생성

const youtubeRegex = new RegExp(`(https?://)?(${youtubeDomains.join('|')})/(shorts/|watch\\?v=|)([\\w-]+)`, 'g');

// bo_v_con의 텍스트를 가져와서 링크를 검색

let textContent = boVCon.innerHTML;

// 링크가 발견되면 object 요소를 생성

const matches = textContent.match(youtubeRegex);

if (matches) {

  // 중복 제거를 위한 Set 사용

  const uniqueLinks = Array.from(new Set(matches));

  uniqueLinks.forEach(link => {

    let videoId = '';

    // 링크에 따라 videoId를 추출

    if (link.includes('youtu.be')) {

      videoId = link.split('/').pop(); // youtu.be 링크에서 videoId 추출

    } else if (link.includes('youtube.com')) {

      const url = new URL(link);

      if (url.pathname.includes('shorts')) {

        videoId = url.pathname.split('/').pop(); // shorts 링크에서 videoId 추출

      } else if (url.searchParams.has('v')) {

        videoId = url.searchParams.get('v'); // watch?v= 링크에서 videoId 추출

      } else {

        videoId = url.pathname.split('/').pop(); // 기본 링크에서 videoId 추출

      }

    }

    // videoId가 유효한 경우에만 iframe 요소 생성

    if (videoId) {

      // iframe 요소 생성

      const videoContainer = `<div class="video-container" style="text-align: center;">

                                <iframe width="100%" height="500" src="https://www.youtube.com/embed/${videoId}" allowfullscreen></iframe>

                              </div>`;

      // 기존 콘텐츠에서 해당 링크를 비디오 요소로 교체

      const safeLink = link.replace(/[-\/\\^$.*+?()[\]{}|]/g, '\\$&'); // 링크를 안전하게 변환

      textContent = textContent.replace(new RegExp(`(?:<a[^>]*>)?${safeLink}(?:<\/a>)?`, 'g'), videoContainer); // 링크를 videoContainer로 교체

    }

  });

  // bo_v_con의 내용을 업데이트

  boVCon.innerHTML = textContent; // 업데이트된 내용을 bovcon에 설정

}

</script>[/code]

참고자료: http://1004web.kr/board_ujsG12/96855

뤼튼이 다 떠먹여줬습니다 :)

|

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,599
2741 4일 전 조회 130
2740 5일 전 조회 113
2739 1주 전 조회 217
2738 1주 전 조회 221
2737 1주 전 조회 185
2736 2주 전 조회 285
2735 3주 전 조회 290
2734 3주 전 조회 265
2733 1개월 전 조회 267
2732 1개월 전 조회 303
2731 1개월 전 조회 270
2730 1개월 전 조회 229
2729 1개월 전 조회 362
2728 1개월 전 조회 248
2727 1개월 전 조회 422
2726 1개월 전 조회 260
2725 1개월 전 조회 332
2724 1개월 전 조회 364
2723 1개월 전 조회 267
2722 1개월 전 조회 301
2721 1개월 전 조회 214
2720 2개월 전 조회 304
2719 2개월 전 조회 314
2718 2개월 전 조회 203
2717 2개월 전 조회 337
2716 2개월 전 조회 204
2715 2개월 전 조회 315
2714 2개월 전 조회 273
2713 2개월 전 조회 378
2712 2개월 전 조회 292
🐛 버그신고