在淘宝下单的时候,无聊玩了一下代码,结果发现,竟然不能通过控制台js代码操作这个输入框的值!真的很神奇,试过别的网站,无论用什么框架,vue/react等,都是可以操作这里的值的。唯独淘宝这个输入框,研究半天没有发现可行的方法。很想知道里边是什么原理,求大神解答。
贴出我之前的代码:
textareaDom = document.querySelector('.textarea__wrapper .next-input.next-input-textarea.textarea__input textarea'); // 获取dom
textareaDom.value = 'ffff'; // 设置value
textareaDom.dispatchEvent(new Event('change')); // 触发change事件
// 试过其它事件 input / textInput / keypress / blur 都不行
经过反复的调试,发现一个可行的方法,大概就是要顺序触发
focus
=>change
=>blur
监听focus事件设置输入值。