Window Vista & IE7.0 호환성 커퍼런스 정리
인터넷 익스플로러 7.0의 호환성 이슈 사례 중 IFrame만
IFrame 보안 강화
- IFrame 위치나 크기를 조정하여 화면상 보이지 않게 하는 시도 모두 차단
- 타 사이트의 이미지나 데이터의 크기 및 사이즈 변경 시도 시 Access Denied 에러 발생
- 다른 도메인간 이미지나 데이터 활용을 하려면 “document.domain” 속성을 응용
아래는 소스는 현재 작업을 마친것을 샘플로 만들어 본 내용이다.
===================================
A사이트 BeCalledScript.js
// 7 버젼이 아니면...OnLoad시 기존의 self.resizeTo로 처리한다.
function window::onload() {
if(navigator.appName.charAt(0) == "M" && navigator.appVersion.charAt(0) == 4 && (navigator.appVersion.indexOf("MSIE 7") == -1)){
self.resizeTo( document.body.scrollWidth, document.body.scrollHeight + 10);
}
}
function fncCopyright(){
var lsCopyrightHtml = '하단부에 보여줄 A사이트 Copyright 내용';
document.write(lsCopyrightHtml);
if(navigator.appName.charAt(0) == "M" && navigator.appVersion.charAt(0) == 4 && (navigator.appVersion.indexOf("MSIE 7") != -1)){
fncFrameResize();
}
}
function fncFrameResize()
{
var w = document.body.scrollWidth;
var h = document.body.scrollHeight + 10;
var p = "";
document.write("<iframe name='iframexx' frameborder='0' scrolling='no' border='0' scrolling='no' width='0' height='0'>");
p = "A사이트 hidden.jsp?w=" + w + "&h=" + h;
document.all['iframexx'].src = p;
}
===================================
===================================
A사이트 Default.html
<frameset id=sframe rows=*,0>
<frame name=main src="A사이트 main.jsp">
<frame name=hidden src="hidden.jsp" noresize>
</frameset>
===================================
===================================
A사이트 main.jsp ( 상단메뉴는 A사이트, B사이트 IFrame )
<%@ include file="TopFrm.jsp"%>
<iframe name="ifrm" src="B사이트 contents.jsp">
===================================
===================================
A사이트 hidden.jsp
<%
String w = "";
String h = "";
if(request.getParameter("w") != null) w = request.getParameter("w");
if(request.getParameter("h") != null) h = request.getParameter("h");
%>
<script language="javascript">
<%if(!w.equals("") && !h.equals("")){%>
var w = '<%=w%>';
var h = '<%=h%>';
// 위치는 적당하게 잡아보세요.
parent.parent.parent.document.frames[0].document.all("ifrm").height = h;
<%}%>
</script>
===================================
===================================
B사이트 contents.jsp
B사이트에서 보여주는 내용.
<script language='javascript' src='A사이트 BeCalledScript.js'></script>
<script language='javascript'>fncCopyright();</script>
===================================
'HTML & Script' 카테고리의 다른 글
CSS 및 JAVASCRIPT 소스 효과적으로 숨기기 (2) | 2008.03.06 |
---|---|
자주 사용하는 스트링 관련 Prototype 정리 (1) | 2008.03.06 |
유용한 getElementById() 메소드 (1) | 2008.03.06 |
getElementById와 getElementsByName의 차이는 (0) | 2008.03.06 |
Prototype.js 가이드 03 참조문서 (0) | 2008.03.06 |