IFrame
외부 웹 페이지 또는 내부 서비스 화면을 현재 화면 안에 내장하여 표시하는 인라인 프레임 컴포넌트
개요
Cals IFrame은 Foundation Iframe을 래핑하여 CALS 프로그램에서 사용하는 주소 조합, 인증 query 자동 부착, 재로드 제어, close 메시지 수신 기능을 제공합니다.
주요 특징
- ✅ src + queryString 결합: 조회 조건을 주소 뒤에 그대로 결합
- ✅ 인증 query 자동 부착: GMS/AeroSuite에서 accessToken, identityPoolId 자동 포함
- ✅ 로드 상태 제어:
load,reloadOnMount로 재생성 여부 제어 - ✅ 전체 크기 모드:
fullSizeprop으로 외부 레이아웃 결정 결과 반영 - ✅ 닫기 요청 수신:
{ method: "close" }메시지 수신 시 콜백 호출 - ✅ 표준 iframe 호환: native iframe 속성과 이벤트를 그대로 전달
기본 사용
src와 title만으로 기본 iframe을 렌더링할 수 있습니다.
Preview
queryString 결합
Preview
인증 정보 자동 포함
GMS/AeroSuite 환경에서는 accessToken, identityPoolId를 최종 URL query에 자동 포함할 수 있습니다.
Preview
전체 화면 표시
전체 화면 여부는 외부 화면 레이아웃이 결정하고, IFrame은 fullSize prop으로 표시 모드만 반영합니다.
Preview
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
src | string | - | iframe 기본 주소 |
queryString | string | - | src 뒤에 결합할 query string |
visible | boolean | true | false이면 렌더링하지 않음 |
load | boolean | true | iframe 렌더링 여부를 제어하는 로드 상태 |
reloadOnMount | boolean | false | false면 숨김 후 재표시 시 기존 로드 상태 유지 |
authIntegration | "gms" | "aerosuite" | - | 인증 query 자동 부착 대상 앱 |
accessToken | string | - | accessToken query 값 |
identityPoolId | string | - | identityPoolId query 값 |
fullSize | boolean | false | 전체 크기 표시 여부 |
height | string | number | 250 | iframe 높이 |
className | string | - | 컨테이너 className |
style | React.CSSProperties | - | 컨테이너 인라인 스타일 |
title | string | - | iframe accessible name/title |
Events
| Event | Type | Description |
|---|---|---|
onCloseRequest | () => void | { method: "close" } 메시지 수신 시 호출 |
onLoad | (event) => void | iframe 로드 완료 시 호출 |
onError | (event) => void | iframe 로드 오류 시 호출 |
접근성
권장 사항
- ✅
title또는aria-label로 iframe의 accessible name을 제공합니다. - ✅ 외부 페이지 내용을 설명할 수 있는 의미 있는 제목을 사용합니다.
- ✅ 보안 정책상 필요한 경우
sandbox,referrerPolicy,allow등의 표준 iframe 속성을 함께 지정합니다. - ❌ 제목 없는 iframe을 사용하지 않습니다.
관련 컴포넌트
- Foundation Iframe: 기본 iframe 컴포넌트
- Dynamic: 동적 레이아웃 컨테이너
Last updated on