Frame

IFrame

컴포넌트 설명

요약

HTML의 IFrame과 유사. IFrame을 통해 WebSquare 파일, 일반 웹 컨텐츠, 다른 사이트들을 화면에 출력 가능.

기능 및 특징

SPA 모드 적용이 가능한 컴포넌트이며. 단, SPA 적용을 위한 제약사항을 반드시 준수해야 함.

YouTube 동영상

뒤로가기(History) 제어

SPA 모드에서 IFrame 화면의 뒤로가기를 제어할 수 있습니다. spaReplaceHistory="true"로 설정할 경우 뒤로 가기 버튼을 클릭하면 각 IFrame에 담긴 화면이 아닌 브라우저 전체가 이젠 페이지를 표시합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/IFrame/spa_spaReplaceHistory_IFrame/)

YouTube 동영상 (https://youtu.be/Ocb7gaTwXy8)

PageInherit

컴포넌트 설명

요약

다른 WebSquare5 XML 화면을 현재 화면에 삽입

기능 및 특징

  • DataCollection, 인스턴스, JavaScript, CSS 상속 지원

WFrame 컴포넌트와의 차이

새로 삽입하는 웹 페이지의 DataCollection, 인스턴스, JavaScript, CSS를 재정의할 수 있습니다.

WFrame

컴포넌트 설명

요약

WebSquare 화면을 삽입 (WFrame에 포함된 페이지를 상위 페이지와 함께 렌더링.)

기능 및 특징

DataCollection, 인스턴스, JavaScript, CSS 공통화

YouTube 동영상

IFrame Vs. WFrame


페이지와의 Merge 여부

호출 방식

IFrame

X

IFrame을 따로 호출.

WFrame

O

WFrame과 페이지를 함께 호출.

IFrame과의 차이


IFrame 컴포넌트에 삽입된 객체는 현재 웹 페이지와 무관한 독립적인 객체입니다.

반면, WFrame에 삽입된 객체는 현재 페이지에 포함(merge)되어 전체가 하나의 소스로 간주됩니다.

즉, IFrame 컴포넌트를 포함한 페이지를 로딩할 경우, 해당 페이지와 IFrame에 포함된 페이지는 각각 따로 호출됩니다. WFrame을 포함한 페이지는 해당 페이지와 WFrame에 포함된 객체가 함께 호출됩니다.

부모 WFrame의 Scope를 상속하는 WFrame

WFrame을 포함하는 화면을 부모 WFrame의 소스(src) 화면으로 생성할 경우, 부모 WFrame이 포함한 WFrame의 소스(src) 화면에서 가장 가까운 부모의 WFrame의 객체 및 영역에 접근하도록 허용할 수 있습니다.

소스(src) 화면을 포함하는 부모 WFrame의 scopeInherit 옵션을 아래와 같이 설정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/scopeInherit_WFrame/)

scopeInherit="none"

scopeInherit="api"

scopeInherit="all"

scopeInherit="component"

소스(src) 화면 설정 시 dataObject를 통한 파라미터 전달

WFrame에 setSrc() 함수를 이용하여 소스(src) 화면을 설정할 때 dataObject를 통해 파라미터를 전달할 수 있습니다. 생성된 WFrame의 src 페이지는 $p.getParameter() 함수를를 통해 전달받은 파라미터 확인 가능합니다.

$r_title(setSrc() 함수로 페이지를 설정할 때 파라미터 전달 (예시))
var rowJSON = {
  "Product Info": {
    "Origin": "Korea",
    "Manufacturer": "Inswave",
    "Type": "Software"
  },
  "Region": "Seoul",
  "Carrier": true
};

var dataObject = {
  "type": "json",
  "name": "param",
  "data": rowJSON
};

var obj = {
  "dataObject": dataObject
};

wframe1.setSrc("src.xml", obj);

또한 WFrame에 설정된 페이지 정보는 아래 방법으로 확인할 수 있습니다.

$r_title(WFrame에서 전달받은 파라미터 확인 (예시 1))
var paramData = $p.getParameter("param");
var data = JSON.stringify(paramData);
alert(data);
$r_title(WFrame에서 전달받은 파라미터 확인 (예시 2))
var param = $p.getParameter("param");
alert("param : " + param.userId);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/getParameter_$p_setSrc_WFrame/)

YouTube 동영상 (https://youtu.be/FFOc-jYbgEw)

소스(src) 화면 설정 시 서브미션 상태창 표시

WFrame의 src 화면이 서브미션을 포함할 경우, 서브미션 실행 시 표시되는 상태창을 WFrame 내부에 표시할 수 있습니다.

상태창 표시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/processMsgFrame_WFrame/)

YouTube 동영상 (https://youtu.be/TRBw-YldeMY)

상태창 소스 변경

config.xml 파일의 <processMsgFrameURL> 항목 설정을 변경하여 해당 상태창의 소스를 변경할 수도 있습니다.

$r_title(config.xml 설정 예)
<WebSquare>
  ...
      <processMsgFrameURL value="/message/processMsg.xml"/> 
  ... 
</WebSquare>

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/processMsgFrameURL_config_processMsgFrame_WFrame/)

YouTube 동영상 (https://youtu.be/CZBajC9oYm8)

워터마크

함수를 호출한 페이지(WFrame 영역)에서 지정한 텍스트 및 현재 시각을 워터마크로 표시할 수 있습니다. 워터마크로 표시되는 현재 시각은 초 단위로 갱신되며, 화면 크기를 조정해도 워터마크 크기는 변하지 않습니다.

$r_title(사용 예)
scwin.$w.watermark("main화면");

예제 적용 결과

YouTube 동영상 (https://youtu.be/2ifAe7gA_28)

팝업 생성 및 팝업 닫기

$p.openPopup() 함수를 사용하여 WFrame 내에서 팝업을 생성할 수 있습니다. 또한 WFrame의 frameModal 속성을 "true"로 설정할 경우, 부모 팝업을 닫을 때 해당 부모에 속하는 모든 자식 팝업을 함께 닫을 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/frameModal_WFrame/)

YouTube 동영상 (https://youtu.be/ru16t-GdHx0)

이벤트

onbeforewframeunload

onbeforewframeunload 이벤트는 페이지가 닫힐 경우 해당 페이지가 지워지기 전 해당 페이지의 (부모) WFrame에서 발생합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/onbeforewframeunload_WFrame/)

YouTube 동영상 (https://youtu.be/0EKW1ten_ps)

onresize

WFrame에 resizeEvent="true" 속성 설정이 적용된 경우, WFrame의 크기가 변경되면 onresize 이벤트가 발생하며 변경 전후의 WFrame 크기 정보를 담은 객체(resizeInfo)를 아래와 같이 반환합니다.

이벤트 발생 간격


WFrame의 크기가 연속적으로 변경될 경우, onresize 이벤트는 70ms 간격으로 발생합니다. 즉, 70ms 이내에 발생하는 크기 변경은 무시됩니다.

$r_title(사용 예)
// resizeEvent="true"

scwin.wframe1_onresize = function(resizeInfo) {   
    var newSize = JSON.stringify(resizeInfo);   
    alert("WFrame Size Changed " + newSize);
};

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/WFrame/resizeEvent_onresize_WFrame/)

YouTube 동영상 (https://youtu.be/C26EtlEj9ZY)