2013-01-12 3 views
-2

본문 html을 html로받은 ajax로 바꿉니다. 문제는 내가 머리 부분을 중복했습니다.AJAX에서 HTML에서 HEAD를 제거하십시오.

내가 먼저 전체 라인을 제거 할 필요가

는 수신 된 HTML에서 경작한다 후 사용

$('body').html(data); 

내가 POST의 결과로 HTML을 얻고있다. 이것은 잘 형식화 된 html입니다.

응답을 보내려면 장고의 render_to_response를 사용하고 있습니다.

어떻게 할 수 있습니까?

+0

페이지 조각이있는 jQuery로드를 사용하십시오. 문서를 읽으십시오. – epascarello

+0

코드를 더 게시하십시오. 아약스 요청처럼. jQuery'.load()'메소드를 확인하십시오. –

+0

epascarello의 덧글을 펼치면 '머리'서버 측을 제외 할 수 없습니까? 그것은 그것을 처리하는 가장 좋은 방법입니다. –

답변

-1

시도 $('body').html($(data).find('body'));. HTML 형식이 올바르다면이 방법이 효과적입니다.

편집 :이 기능은 작동하지 않습니다. 아래 Fabricio의 의견과 이유에 대한 나의 답을 참조하십시오. 한 가지 해결 방법은 body 내부의 모든 것을 지정된 ID로 div에 넣은 다음이 ID를 다음과 같이 선택하는 것입니다. $('body').html($(data).filter('#chosenid')); 물론 이것은 동일한 요청으로 AJAX 호출을 결합한 $('body').load('remote_page.html #chosenid');을 말하는 것과 전혀 다릅니다.

+0

아니겠습니까? 'html' /'body' /'head' 태그는 HTML 문자열을 파싱 할 때 자동으로 제외됩니다.http://jsfiddle.net/hqJjM/1/ –

+0

did not work ... – DjangoPy

+0

'$ (data) .find ('body')가 객체가 아니겠습니까? – Popnoodles

-1

본문에 텍스트를 삽입하고 있습니까? 당신은 load-method를 사용하지만, 스크립트 :

$("body").load("yourNextPage.html"); 
+0

네, html 텍스트가 서버 응답 – DjangoPy

0
나는 head 서버 측을 제외한 권하고 싶습니다

조심,하지만 난 아무 생각이 없기 때문에 당신은 장고에, 여기 hackish하다고 할 및 거라고 어떻게해야 및 head 태그와 함께 body 태그를 자동으로 제외하는 jQuery 구문 분석으로 인해 어떤 요소와도 일치하지 않는 $(data).find('body')의 다른 솔루션과는 달리 적어도 작동하는 매우 추악한 솔루션입니다.

보라, Regex의 힘!

$('body').html(/<body[\s\S]*?>([\s\S]*?)<\/body>/.exec(data)[1]); 

Fiddle

나는 head을 통해 전송으로 생산 환경이 사용하지 않는 것이 좋습니다는 양쪽에 대역폭을 낭비하고 정규식에 가장 적합한 솔루션이 아닙니다. Ajax 요청에 대한 서버 부분 페이지로 전환 할 때까지는 개발을 위해 최소한 작동해야합니다.

0

이러한 솔루션은 모두 매우 해킹 된 것처럼 보입니다 ... 심각하게도 서버 측에서 머리를 제거하십시오!

render_to_ 응답을 사용하는 경우 렌더링 할 템플릿 이름을 전달해야합니다. 그 템플릿에서 어떤 헤드 코드도 쓰지 마십시오! body 태그 사이에있는 코드를 입력하기 만하면됩니다.

+0

에서 수신되었습니다. 참고로, 나는 당신이 그것을 매우 hackish라고 부르기 전에 게시 한 임시 해결 방법을 사용하는 대신 내 대답에서'head' 서버 측을 제거하는 것이 좋습니다. –

+0

정말 사용해서는 안되는 매우 해킹 된 응답 이었기 때문에 나는 그것을 철회했습니다. django에서 페이지의 머리 부분을 제거하는 것은 * 쉽습니다 * 모든 HTML을 직접 작성하는 것처럼! 해킹 된 답변은이를 수행하는 쉽고 권장되는 방법이있을 때 '최상의'대답으로 간주해서는 안됩니다. – Ben

+0

좋아. 내 대답에 대한 마지막 단락을 읽을 수 없다면 논쟁을하지 않을 것입니다. –

관련 문제