게시물 HTML iframe 블록 추가
This commit is contained in:
@@ -1472,18 +1472,39 @@ const getSelectionState = () => {
|
||||
* @returns {void}
|
||||
*/
|
||||
const setTextareaSelection = (start, end = start, options = {}) => {
|
||||
const previousScrollTop = options.preserveScroll ? textareaRef.value?.scrollTop : null
|
||||
const scrollContainer = options.preserveScroll && import.meta.client
|
||||
? getNearestScrollContainer(editorRootRef.value)
|
||||
: null
|
||||
const previousScrollState = options.preserveScroll
|
||||
? {
|
||||
textareaTop: textareaRef.value?.scrollTop,
|
||||
containerTop: scrollContainer?.scrollTop,
|
||||
windowX: import.meta.client ? window.scrollX : 0,
|
||||
windowY: import.meta.client ? window.scrollY : 0
|
||||
}
|
||||
: null
|
||||
|
||||
/**
|
||||
* textarea 스크롤 위치를 복원한다.
|
||||
* textarea와 에디터 스크롤 위치를 복원한다.
|
||||
* @param {HTMLTextAreaElement} textarea - 대상 textarea
|
||||
* @returns {void}
|
||||
*/
|
||||
const restoreScroll = (textarea) => {
|
||||
if (!Number.isFinite(previousScrollTop)) {
|
||||
if (!previousScrollState) {
|
||||
return
|
||||
}
|
||||
|
||||
textarea.scrollTop = previousScrollTop
|
||||
if (Number.isFinite(previousScrollState.textareaTop)) {
|
||||
textarea.scrollTop = previousScrollState.textareaTop
|
||||
}
|
||||
|
||||
if (scrollContainer && Number.isFinite(previousScrollState.containerTop)) {
|
||||
scrollContainer.scrollTop = previousScrollState.containerTop
|
||||
}
|
||||
|
||||
if (import.meta.client && Number.isFinite(previousScrollState.windowY)) {
|
||||
window.scrollTo(previousScrollState.windowX, previousScrollState.windowY)
|
||||
}
|
||||
}
|
||||
|
||||
nextTick(() => {
|
||||
@@ -2729,8 +2750,8 @@ const appendImagesToActiveGallery = (images) => {
|
||||
}
|
||||
|
||||
/**
|
||||
* 현재 임베드 URL을 수정한다.
|
||||
* @param {string} url - 임베드 URL
|
||||
* 현재 HTML 블록 값을 수정한다.
|
||||
* @param {string} url - HTML 블록 값
|
||||
* @returns {void}
|
||||
*/
|
||||
const updateActiveEmbedUrl = (url) => {
|
||||
@@ -2748,6 +2769,11 @@ const updateActiveEmbedUrl = (url) => {
|
||||
return
|
||||
}
|
||||
|
||||
if (trimmed.includes('\n') || /^<iframe\b/i.test(trimmed)) {
|
||||
replaceLineRange(block.startLine, block.endLine, [':::embed', trimmed, ':::'], false)
|
||||
return
|
||||
}
|
||||
|
||||
replaceLineRange(block.startLine, block.endLine, [trimmed], false)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user