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>
===================================

+ Recent posts