묻고답하기
iframe 세로 방향 짤림문제 + 외부 html은 어떻게 불러오나요?
2014.05.19 08:01
하루 종일 이리저리 해보다가 도저히 해결이 되지 않아서 고수님들께 묻습니다.;;;
본래는 제가 jquery를 사용한 페이지를 위젯페이지 생성하고 -> 내용직접추가를 눌러서 html채로 레이아웃 페이지에 넣으려고 했습니다.
그런데 이상하게 따로 html로 작성했을 때에는 아무 문제가 없던 페이지가 내용직접 추가를 이용해서 사이트에 넣으면 에러가 나고 꼬이더라고요.
그래서 생각한 것이 외부 html을 레이아웃 contents영역에 넣자는 거였는데,
사이트 맵에서 '외부페이지'를 생성하고 주소를 연결시켜 놓으면
그 페이지를 볼 때, 레이아웃은 없어져버리고 그냥 연결한 문서만 로딩이 되네요 @.@
외부페이지 기능이라는게 당연히 예전의 프레임처럼 작동하는 건줄 알았는데 찾아봐도 뭐가 문제인지 모르겠고;;;
마지막 대안이 하는 수 없이 iframe으로 같은 서버에 따로 저장해둔 html문서를 불러들이는 거였습니다.
그런데 여기서 페이지 사이즈가 문제가 되네요.
위젯페이지 -> 직접추가 기능을 이용해서 iframe 태그를 넣고 width, height 모두 100%로 지정하면
미리보기 페이지에서는 전체 화면이 잘림 없이 나오는데, 유독 저장버튼만 누르면 iframe이 세로방향으로 잘려버립니다.
(자동 리사이징 스크립트도 인터넷에 돌아다니는 다양한 것들을 찾아서 해보았는데 다 잘 되질 않더군요.
일단 미리보기 페이지에서 제대로 나온다는 건 태그가 그 자체로는 잘 먹었다는 건데 왜 저장하면 그렇게 안될까요 ㅠ.ㅠ.)
최후의 선택지는 그냥 크기를 고정해주는 방법이겠지만 가능하면 사용하지 않으려고 도움을 구합니다.
외부html을 레이아웃 contents에 제대로 뽑는 방법이나
iframe 잘리는 문제를 해결할 방법을 아시는 분들 답변 부탁드립니다!
첨부1: 잘 나오다가!
첨부2: 저장하면 이렇게 짤립니다;;;@.@
댓글 3
-
낮술1잔
2014.05.19 11:03
-
KANTSOFT
2014.05.19 16:16
layouts 폴더아래 각각 layout.html에 보시면 html태그나 iframe, header 태그등이 없습니다. 게시판이나 불러올 페이지등은 {$content}라는 변수에 불러오게 되어있고.. 나머지 부분을 <body></body> 에 들어갈 내용만 넣는겁니다.
-
publicum
2014.05.19 22:35
두분 모두 댓글 감사드립니다!! 덕분에 외부페이지가 어떤 방식으로 레이아웃 안에 들어가는지 알게 되었어요. :)
근데 알고보니 문제가 다른 곳에 있더라고요. 레이아웃이 제대로 출력은 되는데 content영역에 출력이 안되고 페이지 맨 위에 외부페이지 내용이 삽입이 되더라고요. 그래서 어느 부분이 문제를 일으키는지 확인을 해봤더니 맨 앞에 외부 css경로를 지정한 부분이 문제더군요.
말씀하신 대로 body 부분에 해당하는 html을 짜면서 맨 앞에
<link type="text/css" rel="stylesheet" href="song.css"> (파일 경로에는 아무 문제가 없었음)
이렇게 css를 지정해준 부분을 삭제하고 스타일 태그로 아예 html안에 삽입해버렸더니 문제가 해결되었습니다.
그런데 css를 이렇게 외부파일로 지정해주는게 왜 문제를 일으키는 건지 혹시 아시는지요? 레이아웃 전체의 css 규정이랑 충돌을 일으키는 걸까요? 문제는 사라졌지만 궁금증이 남네요.
외부페이지라는게 그냥 외부 페이지를 불러 오는게 아니라 사용하시는 레이아웃에서 {$content} 공간에 따로 만들어 둔 내용을 불러오자는 겁니다.
불러와야 할 외부페이지를 html 부터 선언하시지 마시고 그냥 <body></body> 안에 들어가는 내용만 정리해서 css와 js처리를 하신다고 생각하시면 될겁니다.
그렇게 만들어진 html 파일을 외부페이지 설정에서 걸어 주시면 됩니다.
처음이 생소하지 한번 해 보시면 쉽게 이해 되실겁니다.