site_link1  
site_link2  
site_link3  

질문 : bootstrap에서 다른 html 페이지를 자신의 화면에 출력하는 방법은?

Bing이 다음과 같이 답을 주었다

 

Bootstrap은 자체적으로 다른 HTML 페이지를 출력하는 기능을 제공하지 않습니다.

그러나 JavaScript를 사용하여 다른 HTML 페이지를 로드하고 화면에 출력하는 것은 가능합니다.

 

JavaScript를 사용하여 다른 HTML 페이지를 로드하려면, 일반적으로 AJAX (Asynchronous JavaScript and XML) 기술이나 jQuery와 같은 라이브러리를 사용합니다.

이를 통해 다른 HTML 파일의 내용을 비동기적으로 가져와서 현재 페이지에 삽입할 수 있습니다.

 

다음은 jQuery를 사용하여 다른 HTML 페이지를 로드하고 현재 페이지에 출력하는 간단한 예시입니다:

 

<!DOCTYPE html>

<html>

<head>

  <title>Bootstrap 페이지 출력 예시</title>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

  <script>

    $(document).ready(function() {

      // 버튼을 클릭할 때 다른 페이지를 로드하여 출력합니다.

      $('#loadPageBtn').click(function() {

        $('#content').load('otherpage.html');

      });

    });

  </script>

</head>

<body>

  <div class="container">

    <h1>Bootstrap 페이지 출력 예시</h1>

    <button id="loadPageBtn" class="btn btn-primary">다른 페이지 로드</button>

    <div id="content"></div>

  </div>

</body>

</html>

 

위 예시에서 loadPageBtn이라는 버튼을 클릭하면 content라는 <div> 요소에 otherpage.html의 내용이 로드되어 출력됩니다.

이를 통해 다른 HTML 페이지의 내용을 현재 페이지에 동적으로 표시할 수 있습니다.

 

이는 간단한 예시일 뿐이며, 실제로는 AJAX를 사용하여 더 복잡한 동작을 구현할 수 있습니다.

AJAX를 사용하면 서버와 비동기적으로 통신하여 데이터를 가져오고, 가져온 데이터를 적절히 처리하여 화면에 표시할 수 있습니다.

 

부트스트랩이 외부페이지를 동적으로 로드하여 화면에 출력하는 기능은 없다라는 사실을 바로 알 수 있었다

그리고 나는 부트스트랩 5 를 사용하기 때문에 jQuery를 사용하지 않고 바닐라 스크립트로만 구현된 예제를 다시 물어보았다

 

질문 : 위 예제를 바닐라 스크립트로 변환하면 어떻게 되지?

그리고 Bing 은 친절하게 다음과 같이 답을 주었다

 

jQuery를 사용하지 않고 바닐라 JavaScript로 위의 예제를 변환하는 방법은 다음과 같습니다:

 

<!DOCTYPE html>

<html>

<head>

  <title>Bootstrap 페이지 출력 예시</title>

</head>

<body>

  <div class="container">

    <h1>Bootstrap 페이지 출력 예시</h1>

    <button id="loadPageBtn" class="btn btn-primary">다른 페이지 로드</button>

    <div id="content"></div>

  </div>

 

  <script>

    document.addEventListener('DOMContentLoaded', function() {

      var loadPageBtn = document.getElementById('loadPageBtn');

      var contentDiv = document.getElementById('content');

 

      loadPageBtn.addEventListener('click', function() {

        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function() {

          if (xhr.readyState === 4 && xhr.status === 200) {

            contentDiv.innerHTML = xhr.responseText;

          }

        };

        xhr.open('GET', 'otherpage.html', true);

        xhr.send();

      });

    });

  </script>

</body>

</html>

 

위의 예제에서는 addEventListener를 사용하여 버튼 클릭 이벤트를 처리하고, XMLHttpRequest를 사용하여 AJAX 요청을 수행합니다.

XMLHttpRequest의 onreadystatechange 이벤트 핸들러를 등록하여 요청이 완료되면 응답 데이터를 가져와서 contentDiv의 innerHTML을 업데이트합니다.

 

이렇게 하면 jQuery를 사용하지 않고도 동일한 동작을 구현할 수 있습니다.

 

샘플을 돌려보니 군더더기없이 정확하게 돌아간다

만능 비서를 얻은 기분이다

번호 제목 글쓴이 날짜 조회 수
47 Chatbot 용 디자인 템플릿 (ChatGPT) file 황제낙엽 2024.01.28 4
46 (Bing) Mustache 의 특징 황제낙엽 2023.12.21 0
45 문자열의 셀렉션 동작 구현 (<p>, <input>) 황제낙엽 2023.10.02 0
44 Bootstrap 5 Gallery Examples & Freebies 황제낙엽 2023.09.26 0
43 Small Business Template (Start Bootstrap) 황제낙엽 2023.09.25 1
42 Card Component 에 background image 출력하기 황제낙엽 2023.09.08 0
41 Bootstrap Gallery 를 상품 전시용으로 활용하기 위한 분석 황제낙엽 2023.09.06 1
40 dom element 에 collapse 적용하기 file 황제낙엽 2023.08.16 1
39 <i> 태그의 아이콘 종류 찾기 황제낙엽 2023.07.09 0
38 Vanilla JS Datepicker 에서 locales 지정 (한국어로 출력) 황제낙엽 2023.06.19 11
37 Feather-icons 황제낙엽 2023.06.10 0
» 프레임셋처럼 외부페이지를 동적으로 로드하기 (from bing) 황제낙엽 2023.05.24 1
35 Modal 컴포넌트를 스크립트로 감추고 보이기 황제낙엽 2023.05.22 4
34 bootstrap free date-picker 종류 (from bing) 황제낙엽 2023.05.20 0
33 라디오 버튼을 선택 해제하는 샘플 코드 (from bing) 황제낙엽 2023.05.16 0
32 radio group 에서 아이템을 선택한 값 가져오기 황제낙엽 2023.05.15 1
31 부트스트랩(Bootstrap) 테마(Theme), 템플릿(Template) 무료 사이트 file 황제낙엽 2023.04.05 3
30 부트스트랩 4 와 5 버전 차이를 알려줘 (from ChatGPT) 황제낙엽 2023.02.24 27
29 [Bootstrap] 유튜브 강좌들 황제낙엽 2023.02.23 1
28 [Bootstrap] 부트스트랩 시작하기 (강좌 링크 몇개) 황제낙엽 2023.02.23 2