MCPcopy
hub / github.com/xnx3/translate / set

Function set

translate.js/translate.js:1811–1838  ·  view source on GitHub ↗
(newValue)

Source from the content-addressed store, hash-verified

1809 Object.defineProperty(HTMLInputElement.prototype, 'value', {
1810 ...translate.listener.input.originalValueDescriptor,
1811 set(newValue) {
1812 const oldValue = this.value; // this指向当前被修改的input
1813
1814 // 执行原生赋值
1815 translate.listener.input.originalValueDescriptor.set.call(this, newValue);
1816
1817 // 值变化时触发逻辑
1818 if (newValue !== oldValue) {
1819 //console.log(`JS修改了input值:`);
1820 //console.log(` 旧值=${oldValue} → 新值=${newValue}`);
1821 //console.log(this)
1822
1823 //如果有 translate.node 历史,要根据历史判定一下,如果当前不是translate.js 导致的改变,那就是其他js触发的,那么将其删掉,这样才能触发它重新翻译
1824 if(translate.node.find(this)){
1825 var nodeData = translate.node.get(this);
1826
1827 if(typeof(nodeData.lastTranslateRenderTime) === 'number' && Date.now() - nodeData.lastTranslateRenderTime < 100){
1828 //小于100毫秒,这是 translate.js 引起的改动,不需要任何处理
1829 }else{
1830 //不是 translate.js 引起的,那么需要进行翻译
1831 //删掉当前的记录,以便能正常扫描加入翻译
1832 translate.node.delete(this);
1833 }
1834
1835 }
1836 translate.execute([this]);
1837 }
1838 }
1839 });
1840
1841 },

Callers

nothing calls this directly

Calls 3

getMethod · 0.80
deleteMethod · 0.80
executeMethod · 0.45

Tested by

no test coverage detected