想写一个 Chrome 插件应该如何学习 JS - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
ggp1ot2

想写一个 Chrome 插件应该如何学习 JS

  •  1
     
  •   ggp1ot2 Dec 6, 2022 3385 views
    This topic created in 1250 days ago, the information mentioned may be changed or developed.

    RT 。

    如果目标是写一个稍微复杂一点的 chrome ,应该如何学习 JS 。

    或者有没有好一点的学习 JS 路线。

    有没有交互式的学习 JS 方式,例如学习 git 的网站 Learn Git Branching 那样。

    个人认为很多教程上来就扣定义,什么变量类型、对象、函数之类的,学起来很枯燥。我更喜欢的是在学习中了解如何应用,我之前学习其他语言都是直接 GitHub 找个项目跑起来然后魔改,遇到不会的或者报错去搜解决方案,这样在不断解决 bug 的过程中强化能力。

    但是这样有一个问题就是,我只能大概看懂代码,但是无法从 0 去写,例如给我一个 css 样式,我可以去改成任何我想要的,但是让我从 0 写,我却很难完成。

    但是 JS 我也尝试在 Python 爬虫 、写 web 页面的时候偶尔用过,也是和上面说的一样,就是别人的模版拿过来,改部分参数,我可以通过面向 stackoverflow 完成,但是现在我想写一个 chrome 插件,貌似要从 0 开始,我很难完成。

    不知道有没有什么好的学习方式,如果是啃一个文档或者书的话,我有点抗拒,我更愿意上来就动手!

    8 replies    2023-02-04 22:18:56 +08:00
    leedarmau
        2
    leedarmau  
       Dec 6, 2022
    https://scrimba.com/dashboard#overview

    这是我觉得最好的教程。作为一个从设计转行到前端的人,你可以相信我的推荐
    ggp1ot2
        3
    ggp1ot2  
    OP
       Dec 6, 2022
    @leedarmau #2 非常感谢,一般来说,转行朋友推荐的会更加实用一点,因为确实帮助转行了 hhh
    WinkeyLin
        4
    WinkeyLin  
       Dec 6, 2022 via Android
    零编程基础,因为想写签到脚本才自学的 JS ,基本就是看别人的项目 + 红宝书(微信读书)+ 谷歌,一边写一边学,再配合 Github Copilot 有奇效
    eason1874
        5
    eason1874  
       Dec 6, 2022
    我开发过好多个 chrome 扩展,基本上用不到什么 JS 高级特性,比写网页简单多了。你只要懂脚本语言的基础就够了,变量、类型、函数、数学运算、逻辑运算 if else

    然后了解两件事,一是事件,在什么时候允许什么代码是通过绑定事件来实现;二是异步,也就是 Promise ,扩展操作大多是异步的,就是说返回值不是执行结果,你需要通过回调函数的方式去获得结果,或者用 async/await 语法

    chrome 官方文档和例子

    https://developer.chrome.com/docs/extensions/mv3/devguide/
    https://github.com/GoogleChrome/chrome-extensions-samples
    ggp1ot2
        6
    ggp1ot2  
    OP
       Dec 6, 2022
    @eason1874 #5 非常感谢,其实我觉得,不论对于什么编程语言来说,变量、类型、函数、数学运算、逻辑运算 if else 这些基础本质上都一样,无非是表达方式不一样。

    但是 js 让我感觉,和很多语言都不一样,我看过一些源码,上来就是 async 之类的
    shiyuu
        7
    shiyuu  
       Dec 6, 2022
    我也想写一个 chrome 插件,就是右键选中网页的元素之后可以发送到企业微信
    类似 send-to-telegram
    https://chrome.google.com/webstore/detail/send-to-telegram-for-goog/dgblfklicldlbclahclbkeiacpiiancc
    https://github.com/phguo/Send-to-Telegram-Chrome-extension
    meetalpha
        8
    meetalpha  
       Feb 4, 2023
    https://www.youtube.com/playlist?list=PLC3y8-rFHvwg2-q6Kvw3Tl_4xhxtIaNlY
    Youtube 上播放量最高的 chrome 扩展开发教程,我看了一遍,确实讲得很好,而且语速也可以不开字幕看。

    全程不包含 html css js 语法等基础内容。

    涉及知识包括:
    chrome 本地存储
    选项页
    调用通知
    右键菜单
    设置角标

    扩展对特定页面生效
    修改页面

    如何 debug 扩展

    我打算做一个扩展用于 YouTube 增强,YouTube 有些布局和功能,做得不是很友好。
    About     Help     Advertise     Blog     API     FAQ     Solana     2966 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 15:09 PVG 23:09 LAX 08:09 JFK 11:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86