V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Get Google Chrome
Vimium · 在 Chrome 里使用 vim 快捷键
sudoy
V2EX  ›  Chrome

reactjs 写的网页程序如何写 Chrome 插件呢

  •  
  •   sudoy · 2021-11-29 15:04:37 +08:00 · 1386 次点击
    这是一个创建于 873 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天在写一个 chrome 插件,这次客户网站(就是插件应用的目标网站)是用 reactjs 写的,感觉插件写起来特别费劲。很难在控制台里面模拟一些动作(比如点击下拉菜单,选择选项等等)。各位老哥有什么建议吗?

    5 条回复    2021-11-29 18:57:20 +08:00
    flyhaozi
        1
    flyhaozi  
       2021-11-29 15:30:46 +08:00   ❤️ 1
    只是去访问某些元素的话常规的 DOM 操作就可以了吧,难的是修改,直接修改 DOM 的话会被 React 渲染回去,感觉最好的办法是去 hook React 的 API ,不过得对 React 源码有一定了解才行,而且代码打包之后也很难找到去修改的入口,我也很头疼,同求建议
    zhizunzz
        2
    zhizunzz  
       2021-11-29 16:28:04 +08:00
    我就写了一个, 没啥好办法, jQuery 一把梭, 就是直接操作 DOM, 楼上提的被 React 渲染回去的情况还没遇到过[狗头]
    zhizunzz
        3
    zhizunzz  
       2021-11-29 16:31:41 +08:00   ❤️ 1
    emm... 想了想遇到过欸, 有些操作做不了, 比如给某个 input 设置值, 确实会渲染回去, 并且值也不生效, 人肉找到相关刷新代码应该可以, 但是太烦了
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2021-11-29 16:54:59 +08:00   ❤️ 1
    是没有什么好方法获取想要元素的 dom 吧,可以试试 jquery ,选择器类型更多
    sudoy
        5
    sudoy  
    OP
       2021-11-29 18:57:20 +08:00 via iPhone
    获取元素麻烦是一方面,另外一方面是有些操作不仅需要更新浏览器 dom ,还要更新 react 的虚拟 dom 的状态才能进行下一步。这个帖子讲了一些 https://stackoverflow.com/questions/52120524/type-text-into-a-react-input-using-javascript-tampermonkey-script
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2723 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.