关于外部 js 修改 dx-select-box 的值的可行性

51 天前
 insanny
请问对于 devExtreme 中的 dx-select-box ,有没有方法通过外部 js (如浏览器的控制台、浏览器插件等)直接修改它的 value ?目前了解到的方案都是
const selectBoxElement = document.querySelector('.dx-selectbox');
const dxSelectBoxInstance = $(selectBoxElement).data('dxSelectBox');
dxSelectBoxInstance.option('value', 'YourDesiredValue');
然而我在目标网站上 dxSelectBoxInstance 返回的是 Null
并且 ng.getComponent 也用不了,probe 返回的也是空,页面上的 html 元素直接显示的就是<dx-select-box>,并不是<div class='dx-selectbox'>
1142 次点击
所在节点    Angular
3 条回复
nzbin
51 天前
用框架是不建议直接操作 dom 的,好奇是什么场景必须用这种方式。<dx-select-box> 实例和 dom 元素没有关系,除非组件库给出 api ,否则肯定拿不到
nzbin
51 天前
换个思路,<dx-select-box #dxSelectBoxInstance>,可以在组件里面获取实例,然后把实例赋值到 window 上面,比如 window.dxSelectBoxInstance = dxSelectBoxInstance ,这样就能用 js 操作了
insanny
51 天前
@nzbin 感谢回复,场景就是要做一个自动化工具去填很多表单。用模拟事件的方式效率比较一般,就想着直接用 js 去触发把 value 填上去,但是试了大半天也没找到很好的办法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1145133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX