Nice programing

자바 스크립트를 사용하여 헤드를 포함한 전체 페이지 교체

nicepro 2020. 12. 25. 22:57
반응형

자바 스크립트를 사용하여 헤드를 포함한 전체 페이지 교체


문자열이 전달되는 Javascript 함수가 있습니다. 전달되는 문자열은 헤더를 포함한 전체 웹 페이지입니다. 전체 현재 페이지, 헤드 및 모든 것을 새 콘텐츠로 대체하려면 Javascript가 필요합니다.

다음 HTML 파일을 고려하십시오.

<html>
  <head>
    <script language="Javascript">
      <!--
      var newContent='<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>';
      function ReplaceContent(NC) {
        document.body.innerHTML=NC;
      }
      function Hi() {
        alert("Hello World");
        ReplaceContent(newContent);
      }
      -->
    </script>
  </head>
  <body onload="Hi();">
    Original Content
  </body>
</html>

이 경우 전달 된 문자열은 다음과 같습니다.

<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>

하지만 물론 "ReplaceContent"기능은 본문 만 대체하고 헤더는 대체하지 않기 때문에 "Goodbye World"경고를받지 않습니다.

"이 작업을 수행하는 이유"를 무시 하고 헤더 및 자바 스크립트 함수를 포함하여 전체 페이지를 어떻게 동적으로 바꿀 수 있습니까?

"source"html (위의 'newContent')은 문자열로만 존재하며, 서버 어디에도 존재하지 않으므로 리디렉션 할 수 없습니다.

콘텐츠가 교체되면 "Goodbye World"경고가 나타나도록 위의 "ReplaceContent"를 어떻게 변경합니까? newContent 변수의 값을 미리 알 수 없습니다.


document.write를 사용하십시오.

<html>
  <head>
    <script language="Javascript">
      <!--
      var newContent='<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>';
      function ReplaceContent(NC) {
        document.open();
        document.write(NC);
        document.close();
      }
      function Hi() {
        ReplaceContent(newContent);
      }
      -->
    </script>
  </head>
  <body>
    Original Content
    <a href="javascript:Hi()">Replace</a>
  </body>
</html>

스크립트

javascript:document.open('text/html');document.write('<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HAI</title></head><body><h1>OMG HAI2U!!!1</h1></body></html>');document.close();

결과 페이지의 DOM 스냅 샷

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HAI</title></head><body><h1>OMG HAI2U!!!1</h1></body></html>

$("html").html('your page html here');

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.7.2.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);


document.getElementsByTagName("html")[0].innerHTMLheadbody태그를 모두 포함 합니다. 나는 보통 피한다document.open\write\close

참조 URL : https://stackoverflow.com/questions/4292603/replacing-entire-page-include-head-using-javascript

반응형