
用在油猴脚本里,我试了很多网页的 input 都可以直接通过.value 去赋值,但遇到一个字节的后台就是赋不进去,请大触指点
$(document).on('mouseenter', "input[placeholder='Enter ID']", function () { let ele = $(this).get() tEvent(ele, "click"); tEvent(ele, "input"); ele.value = 123456789; tEvent(ele, "keyup"); tEvent(ele, "change"); // tEvent(ele, "blur"); }) function tEvent (e, evType) { if (e) { window.newhtmlevents = window.newhtmlevents || document.createEvent("HTMLEvents"); newhtmlevents.initEvent(evType, true, true); return e.dispatchEvent(newhtmlevents) } } 1 QUC062IzY3M1Y6dg 2023-11-27 15:51:33 +08:00 下面报错,改成这样可以正常运行 if (e) { $(e).trigger(evType); } |
2 gelilaohuang OP |
3 QUC062IzY3M1Y6dg 2023-11-27 16:24:50 +08:00 @gelilaohuang 我没理解,点击的时候赋值 value 进去了,然后你又写了一个鼠标悬浮事件是赋值 vlaue 现在没搞明白你的 mouseenter 是做什么用的,可以加我私聊现在有点闲 emlzaHVtZQ== |
4 chingyat 2023-11-27 16:43:54 +08:00 via iPhone react 的受控组件也可以这么操作吗? |
是不是控件数据不是在 dom 里面而是另外定义的变量去记录的, 然后 hover 的时候按照内存里面的数据把 dom 刷新了, 不然这里看不到有什么动作会触发清空这个操作 |
6 chingyat 2023-11-27 16:51:19 +08:00 via iPhone 这个网页是用 react 写的吗? |
7 gelilaohuang OP @chingyat 盲猜是的,或者有没有搞 tiktok 商家后台的同学来说一下你们这个要在前台怎么赋值 |
8 gelilaohuang OP @corcre 尝试清掉 table 、tr 的所有事件,仍然无果放弃 |
9 chingyat 2023-11-27 17:08:26 +08:00 |
10 lisxour 2023-11-27 17:17:22 +08:00 很明显这个 input 双向绑定了 |
11 gelilaohuang OP @chingyat 谢谢,我一会儿尝试下看看结果再来反馈 |
12 Doctorwu 2023-11-27 17:37:16 +08:00 看上去是鼠标放上去触发 re-render 了, 然后 Input 的值被清除回了内存中保存的变量 |
13 wangtian2020 2023-11-27 18:08:25 +08:00 试试看把完整流程都写进脚本里:聚焦输入框、输入值、取消聚焦 |
14 gelilaohuang OP ``` function setNativeValue (element, value) { // Get the original value setter of the element let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set; // Set the new value using the native setter nativeInputValueSetter.call(element, value); // Create a new input event with the target element and bubbles flag let event = new Event("input", { target: element, bubbles: true }); // Add a simulated flag to the event for React 15 compatibility event.simulated = true; // Dispatch the event to the element element.dispatchEvent(event); } ``` 用这个搞定了,感谢大家的关注 |
15 realJamespond 2023-11-28 10:49:15 +08:00 绑定的模拟输入吧,触发 onchange 事件赋值 |