반응형
자바 스크립트를 사용하여 헤드를 포함한 전체 페이지 교체
문자열이 전달되는 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].innerHTML
head
및 body
태그를 모두 포함 합니다. 나는 보통 피한다document.open\write\close
참조 URL : https://stackoverflow.com/questions/4292603/replacing-entire-page-include-head-using-javascript
반응형
'Nice programing' 카테고리의 다른 글
cmd.exe에서 "배치 작업 종료"를 억제하려면 어떻게해야합니까? (0) | 2020.12.25 |
---|---|
PHP에서 개체를 캐스팅하는 방법 (0) | 2020.12.25 |
"오류 : MyClass 클래스에서 Main 메서드를 찾을 수 없습니다. main 메서드를 다음과 같이 정의하십시오…" (0) | 2020.12.25 |
분기 이름에 '공백'문자가 포함될 수없는 이유는 무엇입니까? (0) | 2020.12.25 |
Swift 3에서 함수의 클로저 매개 변수를 어떻게 문서화합니까? (0) | 2020.12.25 |