fix: 댓글 수정 execCommand 방식으로 변경 (React 상태 동기화)
This commit is contained in:
@@ -418,7 +418,7 @@
|
||||
"actions": [
|
||||
{
|
||||
"type": "evaluate",
|
||||
"script": "(function(){ var textareas = Array.from(document.querySelectorAll('textarea')); var editTA = textareas.find(function(t){ return t.value && t.value.includes('첫 번째 테스트'); }); if(editTA){ var setter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,'value').set; setter.call(editTA, '수정된 첫 번째 댓글입니다.'); var tracker = editTA._valueTracker; if(tracker){ tracker.setValue(''); } editTA.dispatchEvent(new Event('input',{bubbles:true})); editTA.dispatchEvent(new Event('change',{bubbles:true})); return 'filled edit textarea (React tracker reset)'; } var inputs = Array.from(document.querySelectorAll('input[type=\"text\"]')); var editInput = inputs.find(function(i){ return i.value && i.value.includes('첫 번째 테스트'); }); if(editInput){ var inputSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,'value').set; inputSetter.call(editInput, '수정된 첫 번째 댓글입니다.'); var tracker2 = editInput._valueTracker; if(tracker2){ tracker2.setValue(''); } editInput.dispatchEvent(new Event('input',{bubbles:true})); editInput.dispatchEvent(new Event('change',{bubbles:true})); return 'filled edit input (React tracker reset)'; } var editables = document.querySelectorAll('[contenteditable=\"true\"]'); for(var i=0; i<editables.length; i++){ if(editables[i].textContent && editables[i].textContent.includes('첫 번째 테스트')){ editables[i].textContent = '수정된 첫 번째 댓글입니다.'; editables[i].dispatchEvent(new Event('input',{bubbles:true})); return 'filled contenteditable'; }} return 'edit element not found'; })()"
|
||||
"script": "(function(){ var textareas = Array.from(document.querySelectorAll('textarea')); var editTA = textareas.find(function(t){ return t.value && t.value.includes('첫 번째 테스트'); }); if(editTA){ editTA.focus(); editTA.select(); document.execCommand('insertText', false, '수정된 첫 번째 댓글입니다.'); return 'filled edit textarea (execCommand)'; } var inputs = Array.from(document.querySelectorAll('input[type=\"text\"]')); var editInput = inputs.find(function(i){ return i.value && i.value.includes('첫 번째 테스트'); }); if(editInput){ editInput.focus(); editInput.select(); document.execCommand('insertText', false, '수정된 첫 번째 댓글입니다.'); return 'filled edit input (execCommand)'; } var editables = document.querySelectorAll('[contenteditable=\"true\"]'); for(var i=0; i<editables.length; i++){ if(editables[i].textContent && editables[i].textContent.includes('첫 번째 테스트')){ editables[i].focus(); var sel = window.getSelection(); var range = document.createRange(); range.selectNodeContents(editables[i]); sel.removeAllRanges(); sel.addRange(range); document.execCommand('insertText', false, '수정된 첫 번째 댓글입니다.'); return 'filled contenteditable (execCommand)'; }} return 'edit element not found'; })()"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user