我试图通过DOM操作在Internet Explorer上更改reactjs输入字段的值,而无需访问源代码。
document.getElementById('description').value = 'I changed description';
"描述" field是一个简单的HTML textarea with reactjs。 在这里阅读其他问题,(令人沮丧的是我无法评论它们)我发现要实际更改值,reactjs需要在字段上触发输入事件。
见到这里:What is the best way to trigger onchange event in react js
解决方案是在更改后发送以下输入事件:
var evt = new Event('input', { bubbles: true });
elem.dispatchEvent(evt);
此代码适用于Chrome和Firefox,但Internet Explorer不支持新的Event()。
它有一个polyfill:
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent('input', true, false, { });
elem.dispatchEvent(evt);
出于某种原因,这只是在Edge上的IE11上工作。当我说它不起作用时,我的意思是它不适用于reactjs字段,它可以在普通的HTML5字段上工作。
最后,如何通过DOM正确更改IE11上的reactjs输入字段的值?它必须在IE上,我已经知道的其他浏览器。