FastComments.com
Here you can edit and run the code snippet from our documentation.
Example Code Snippet "확장 객체 JSDoc"
/** * FastCommentsUI 확장 객체입니다. 특정 컴포넌트를 지연 로딩(lazy-loading)하는 데 사용됩니다. 예를 들어, 리뷰 시스템은 * 모든 고객이 사용하는 것이 아니므로 필요할 때만 해당 확장을 로드합니다. * * @typedef {Object} FastCommentsUIExtension * @property {string} id * @property {Element} scriptNode * @property {Element} root - 위젯의 루트 DOM 노드입니다. * @property {string} [css] * @property {Object} config - FastComments 설정 객체입니다. * @property {Object} commentsById - 모든 댓글을 id별로 담고 있는 객체에 대한 참조이며, 항상 최신 상태로 유지됩니다. * @property {Object} translations - 모든 번역에 대한 참조입니다. * @property {Function} reRenderComment - 호출하여 댓글을 다시 렌더링할 수 있는 함수에 대한 참조입니다. * @property {Function} removeCommentAndReRender - 호출하여 메모리에서 댓글을 제거하고 DOM의 해당 부분을 다시 렌더링할 수 있는 함수에 대한 참조입니다. * @property {Function} newBroadcastId - 호출하여 새 broadcast id를 생성하고 무시할 broadcast id의 로컬 목록에 추가할 수 있는 함수에 대한 참조입니다. * @property {Function} [withSessionId] - 요청 URL과 콜백을 인자로 호출합니다. 서드파티 쿠키가 차단된 경우(댓글 및 투표 요청이 사용하는 것과 동일한 경로) 세션 id가 추가된 URL로 콜백을 실행하고, 그렇지 않으면 URL을 그대로 전달합니다. 이 방식으로 세션 id를 사용할 수 없는 경우, 마지막으로 rememberAnonSessionId에 전달된 익명 세션 id(있다면)를 추가합니다. SSO에는 사용되지 않습니다. * @property {Function} [rememberAnonSessionId] - 응답이 반환한 anonSessionId를 인자로 호출합니다. 서버는 세션 쿠키가 없는 게스트의 요청에만 이 값을 반환하며, 로그인된 세션에는 절대 반환하지 않습니다. 이 값은 localStorage에 저장되고(저장소를 사용할 수 없는 경우 메모리에 저장) 이후 요청에서 withSessionId가 이를 전송하여 게스트가 하나의 동일성을 유지하도록 합니다. * @property {FastCommentsUIExtensionSetupEventHandlers} [setupEventHandlers] * @property {FastCommentsUIExtensionPrepareCommentForSavingCallback} [prepareCommentForSaving] - 게시하려는 댓글과 함께 호출됩니다. false를 반환하면 제출이 취소됩니다(예: 첨부된 투표가 완성되지 않은 경우). * @property {FastCommentsUIExtensionNewCommentCallback} [newComment] * @property {FastCommentsUIExtensionReplyAreaFilter} [replyAreaFilter] - 댓글 영역의 HTML을 필터링합니다. * @property {FastCommentsUIExtensionWidgetFilter} [widgetFilter] - 렌더링 시 전체 위젯의 HTML을 필터링합니다. * @property {FastCommentsUIExtensionCommentTopFilter} [commentFilter] - 렌더링 전에 각 댓글의 HTML을 필터링합니다. * @property {FastCommentsUIExtensionReplyAreaFilter} [commentMenuFilter] - 렌더링 전에 각 댓글 메뉴의 HTML을 필터링합니다. * @property {FastCommentsUIExtensionMenuFilter} [menuFilter] - 렌더링 시 전체 위젯의 HTML을 필터링합니다. * @property {FastCommentsUIExtensionReplyAreaTop} [replyAreaTop] - (레거시) 답글 영역 상단에 추가할 HTML을 반환합니다. * @property {FastCommentsUIExtensionWidgetTopCallback} [widgetTop] - (레거시) 위젯 상단에 추가할 HTML을 반환합니다. * @property {FastCommentsUIExtensionCommentTopCallback} [commentTop] - (레거시) 댓글 요소 상단에 추가할 HTML을 반환합니다. * @property {FastCommentsUIExtensionCommentBottomCallback} [commentBottom] - (레거시) 댓글 요소 하단에 추가할 HTML을 반환합니다. * @property {FastCommentsUIExtensionCommentBottomCallback} [commentContentBottom] - 댓글 텍스트 뒤, 댓글 콘텐츠 요소 내부에 추가할 HTML을 반환합니다(투표에서 사용). * @property {Function} [replyAreaInputBottom] - 댓글 입력 프레임 내부, 텍스트 입력 아래에 추가할 HTML을 반환합니다(투표의 인라인 투표 편집기에서 사용). 부모 댓글 id를 전달받으며, 루트 답글 상자의 경우 null을 전달받습니다. * @property {Function} [onPollUpdate] - 페이지의 투표 투표 수가 변경될 때 라이브 이벤트와 함께 호출됩니다. * @property {Function} isSiteAdmin - 조회자가 해당 테넌트의 관리자 또는 중재자인지 여부를 반환합니다. 첫 번째 fetch 이후에 알 수 있습니다. * @property {FastCommentsUIExtensionMenuBottomCallback} [menuBottom] - (레거시) 각 댓글의 메뉴 요소 하단에 추가할 HTML을 반환합니다. * @property {FastCommentsUIExtensionRenderCallback} [onRender] * @property {FastCommentsUIExtensionConnectionStatusCallback} [onLiveConnectionStatusUpdate] * @property {FastCommentsUIExtensionInitialRenderCallback} [onInitialRenderComplete] * @property {FastCommentsUIExtensionPresenceUpdateCallback} [onPresenceUpdate] */ /** * @callback FastCommentsUIExtensionSetupEventHandlers * @param {Element} element - 루트 요소입니다. * @param {Object.<string, Function>} clickListeners - 클래스 이름별 클릭 이벤트 핸들러로, 참조를 통해 수정할 수 있습니다. * @returns void */ /** * @callback FastCommentsUIExtensionWidgetTopCallback * @param {Object} moduleData * @returns {string} */ /** * @callback FastCommentsUIExtensionWidgetFilter * @param {Object} moduleData * @param {Object} html * @returns {string} */ /** * @callback FastCommentsUIExtensionCommentTopCallback * @param {Object} comment * @returns {string} */ /** * @callback FastCommentsUIExtensionCommentTopFilter * @param {Object} comment * @param {string} html * @returns {string} */ /** * @callback FastCommentsUIExtensionCommentBottomCallback * @param {Object} comment * @returns {string} */ /** * @callback FastCommentsUIExtensionMenuBottomCallback * @param {Object} comment * @returns {string} */ /** * @callback FastCommentsUIExtensionMenuFilter * @param {Object} comment * @param {string} html * @returns {string} */ /** * @callback FastCommentsUIExtensionRenderCallback * @returns {string} */ /** * @callback FastCommentsUIExtensionConnectionStatusCallback * @param {boolean} isConnected * @returns {void} */ /** * @callback FastCommentsUIExtensionInitialRenderCallback * @returns {void} */ /** * @callback FastCommentsUIExtensionReplyAreaTop * @param {Object|null} currentUser * @param {boolean} isSaving * @param {boolean} isReplyOpen * @param {string|null} parentId * @returns {string} */ /** * @callback FastCommentsUIExtensionReplyAreaFilter * @param {Object|null} currentUser * @param {boolean} isSaving * @param {boolean} isReplyOpen * @param {string|null} parentId * @param {string|null} html * @returns {string} */ /** * @callback FastCommentsUIExtensionPrepareCommentForSavingCallback * @param {Object} comment * @param {string} parentId */ /** * @callback FastCommentsUIExtensionNewCommentCallback * @param {Object} comment */ /** * @callback FastCommentsUIExtensionPresenceUpdateCallback * @param {Object} update */
Result