@@ -8,6 +8,7 @@ import { isDarkMode, getCopyShortcutText } from "@/utils/tools";
88import { getCategories } from "@/utils/categoryUtils" ;
99import { getGlobalSetting } from "@/utils/globalSettings" ;
1010import { t } from "@/utils/i18n" ;
11+ import { getNewlineStrategy , setElementContentByStrategy } from "@/utils/newlineRules" ;
1112
1213interface PromptSelectorProps {
1314 prompts : PromptItemWithVariables [ ] ;
@@ -298,6 +299,7 @@ const PromptSelector: React.FC<PromptSelectorProps> = ({
298299 try {
299300 // contenteditable 元素的特殊处理
300301 const editableElement = ( targetElement as any ) . _element as HTMLElement ;
302+ const newlineStrategy = getNewlineStrategy ( window . location . href ) ;
301303
302304 // 获取当前内容和光标位置
303305 const fullText = editableElement . textContent || "" ;
@@ -325,8 +327,7 @@ const PromptSelector: React.FC<PromptSelectorProps> = ({
325327
326328 // 如果 beforeinput 事件没有被阻止,则继续处理
327329 if ( editableElement . dispatchEvent ( beforeInputEvent ) ) {
328- // 设置新内容
329- editableElement . textContent = newContent ;
330+ setElementContentByStrategy ( editableElement , newContent , newlineStrategy ) ;
330331
331332 // 创建并分发 input 事件
332333 const inputEvent = new InputEvent ( "input" , {
@@ -360,7 +361,6 @@ const PromptSelector: React.FC<PromptSelectorProps> = ({
360361
361362 // 如果 beforeinput 事件没有被阻止,则继续处理
362363 if ( editableElement . dispatchEvent ( beforeInputEvent ) ) {
363- // 获取当前内容
364364 const currentContent = editableElement . textContent || "" ;
365365 const position = range . startOffset ;
366366
@@ -370,8 +370,7 @@ const PromptSelector: React.FC<PromptSelectorProps> = ({
370370 content +
371371 currentContent . slice ( position ) ;
372372
373- // 设置新内容
374- editableElement . textContent = newContent ;
373+ setElementContentByStrategy ( editableElement , newContent , newlineStrategy ) ;
375374
376375 // 创建并分发 input 事件
377376 const inputEvent = new InputEvent ( "input" , {
@@ -401,9 +400,7 @@ const PromptSelector: React.FC<PromptSelectorProps> = ({
401400 if ( editableElement . dispatchEvent ( beforeInputEvent ) ) {
402401 const currentContent = editableElement . textContent || "" ;
403402 const newContent = currentContent + content ;
404-
405- // 设置新内容
406- editableElement . textContent = newContent ;
403+ setElementContentByStrategy ( editableElement , newContent , newlineStrategy ) ;
407404
408405 // 创建并分发 input 事件
409406 const inputEvent = new InputEvent ( "input" , {
0 commit comments