fix: 댓글 수정 React _valueTracker 리셋 추가 (step 40)

This commit is contained in:
김보곤
2026-02-05 09:41:12 +09:00
parent 400a66daab
commit 88c2e2454f

View File

@@ -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, '수정된 첫 번째 댓글입니다.'); editTA.dispatchEvent(new Event('input',{bubbles:true})); editTA.dispatchEvent(new Event('change',{bubbles:true})); return 'filled edit textarea'; } 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, '수정된 첫 번째 댓글입니다.'); editInput.dispatchEvent(new Event('input',{bubbles:true})); editInput.dispatchEvent(new Event('change',{bubbles:true})); return 'filled edit input'; } 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){ 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'; })()"
}
]
},