iframe의 이름을 다음과 같이 정의 했다고 하자.
<iframe id="s_content" name="s_frame" src=".....
자바스크립트로 iframe을 가져오는 방법은 다음과 같다.
document.getElementById("s_content");
혹은
window.frames["s_frame"];
여기까지는 모두가 알만하고, js를 공부해본 사람이라면 누구든지 쉽게 접근할수 있다.
하지만 브라우저간에 다른 구현으로 인해, 내부 document를 가져오는 방법이 다르다.
ie, ff계열.. : frame.contentWindow
safari, opera : frame.contentDocument
매우 뷁스러운 상황이라 할 수 있다.
그래서 코드를 구현할때는 다음과 같이 하도록 한다.
<script type="text/javascript">
function getFrame() {
var frm = document.getElementById("s_frame");
if (frm == null) return;
var fDoc = frm.contentWindow || frm.contentDocument;
if (fDoc.document) {
fDoc = fDoc.document;
}
//여기서부터 갖고 노는거닷!!
fDoc.body.style.backgroundColor = "red";
}
</script>
당연히 아시겠지만 getFrame()함수를 실행하게 되면 iframe내부의 배경색깔이 빨간색으로 바뀌게 됩니다.
'front' 카테고리의 다른 글
크롬 개발자 모드 콘솔 기능들 (0) | 2016.11.14 |
---|---|
ajax submit 자체 구현 (0) | 2016.10.27 |
모니터링 툴 scouter APM (0) | 2016.09.08 |
ajax multipart/form-data 검색하면 두개 더 있지만 또!!! (0) | 2016.08.11 |
ajax crossdomain (0) | 2016.03.31 |