사용 설명서 > 개발자 문서 > 번들 규격
HTML·CSS·JS 작성 규칙
이 글의 목차
번들은 저장·게시 전에 정적 검증을 받습니다. 아래를 어기면 거절됩니다.
HTML
- script·form·iframe·object·embed·link·base·meta 요소를 쓰지 않습니다. 입력은 <input>·<button type="button"> 으로 구성하고 제출은 JS 에서 처리합니다.
- onclick 같은 on* 속성과 srcdoc·ping 속성을 쓰지 않습니다. 이벤트는 JS 의 addEventListener 로 연결합니다.
- src·href·action 등 URL 속성에는 같은 페이지 앵커(#…)만 씁니다. 외부 주소·data URL 은 거절됩니다. 이미지는 JS 로 <img> 를 만들어 src 에 넣습니다(생성 결과 dataUrl 등).
- 화면 전환은 data-screen 요소의 hidden 속성을 JS 로 토글하는 방식을 권장합니다.
CSS
- @import·url(...)·image-set·@namespace url 을 쓰지 않습니다. 글꼴·배경 이미지를 외부에서 불러올 수 없으므로 시스템 글꼴과 색·그라디언트로 꾸밉니다.
- 앱 영역 밖(페이지 전체)에는 영향을 주지 않는 격리된 문서에서 실행됩니다.
JavaScript
- eval·new Function·외부 URL 호출(fetch·XMLHttpRequest·WebSocket 등 네트워크 접근)을 쓰지 않습니다. 서버와의 통신은 SDK(FC)만 사용합니다.
- window·parent·top·self·globalThis·frames·opener 와 contentWindow·ownerDocument 같은 프레임 탈출 접근을 쓰지 않습니다.
- FC 를 다른 변수에 담거나 FC[이름] 처럼 동적으로 접근하지 않습니다. FC.contact.create(...) 처럼 직접 호출합니다. 허용된 호출 목록은 SDK 표에 있습니다.
- document 는 document.querySelector(...) 처럼 바로 호출합니다. const d = document 같은 별칭은 거절됩니다.
- FC.settings 는 읽기 전용입니다.
권장 패턴
- 결과·오류 문구는 textContent 로 넣습니다(innerHTML 로 방문자 입력이나 서버 응답을 넣지 않습니다).
- 서버에 요청을 보내는 버튼은 요청 중 disabled 로 잠가 중복 호출을 막고, 진행 중·성공·실패 상태를 화면에 보입니다.
- 개인정보는 방문자가 입력한 범위에서만 다루고, 입력 안내 문구에 수집 목적을 적습니다.
- 호출마다 크레딧이 드는 기능(AI·이미지)은 자동 반복 호출하지 않고 버튼 클릭에 한 번만 보냅니다.