MCPcopy Create free account
hub / github.com/hoothin/UserScripts / emuInput

Function emuInput

Pagetual/pagetual.user.js:12570–12607  ·  view source on GitHub ↗
(input, v)

Source from the content-addressed store, hash-verified

12568 }
12569
12570 function emuInput(input, v) {
12571 let result = false;
12572 if (!input) return true;
12573 let event = new Event('focus', { bubbles: true });
12574 input.dispatchEvent(event);
12575 let lastValue = input.value;
12576 if (input.type == 'file') {
12577 let file = v;
12578 let blob = new Blob([file], {
12579 type: 'text/plain'
12580 });
12581 file = new File([blob], 'noname.txt', { type: blob.type });
12582 let dataTransfer = new DataTransfer();
12583 dataTransfer.items.add(file);
12584 input.files = dataTransfer.files;
12585 v = "c:/fakepath/fakefile";
12586 } else if (/INPUT/i.test(input.nodeName)) {
12587 var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
12588 nativeInputValueSetter.call(input, v);
12589 } else if (/SELECT/i.test(input.nodeName)) {
12590 var nativeSelectValueSetter = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, "value").set;
12591 nativeSelectValueSetter.call(input, v);
12592 } else if (input.nodeName.toUpperCase() == "TEXTAREA") {
12593 var nativeTextareaValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set;
12594 nativeTextareaValueSetter.call(input, v);
12595 } else {
12596 setHTML(input, v);
12597 }
12598 event = new Event('input', { bubbles: true });
12599 let tracker = input._valueTracker;
12600 if (tracker) {
12601 tracker.setValue(lastValue);
12602 }
12603 input.dispatchEvent(event);
12604 event = new Event('change', { bubbles: true });
12605 input.dispatchEvent(event);
12606 return result;
12607 }
12608
12609 function clientX(e) {
12610 if (e.type.indexOf('touch') === 0) {

Callers 1

cloneStatusFunction · 0.85

Calls 1

setHTMLFunction · 0.70

Tested by

no test coverage detected