#1 - 2021-8-10 01:31
klion
最近学了一点css,js,想写一些简单的插件。

看其他人写的源码,发现好多看不懂(bgm115),拿浏览器一行行运行才看懂了些。
有些问题想请教下大家,启用插件的话,是bangumi内任何一个页面,都会运行这些脚本吗?像是和小组相关的脚本也会在个人主页运行,只是跑不出什么结果?

要是自己写的话,要怎么调试才方便?
#2 - 2021-8-10 02:22
插件可以用@include或@match标明生效的页面。在不生效的页面不会运行
调试的话,我只会用F12和F5(bgm38)写写小插件应该够用了
#3 - 2021-8-10 02:54
(天生万物以养人,人无一物以报天)
bangumi的插件可以当成是一个裁剪过的油猴脚本(greasemonkey,tampermonkey或者叫OpenScript)
支持的meta只有include和match
运行环境是网页加载完之后,eval插件的js内容。插件之间的运行顺序不能保证
除了浏览器提供的原生API,能用的依赖库只有jquery,不支持油猴脚本的GM.*, GM_* 或者用require引入额外的依赖。
在/m/的移动端网页上不起效,哪怕用meta header指定了。

从各种角度来说我建议你直接学习编写油猴脚本,更快的加载速度(更好的用户体验),不需要等待sai审核代码,可以引入依赖,更好的开发体验。

虽然我有大型油猴脚本的开发方案,但是跟bgm插件并不能直接用油猴脚本,而且感觉楼主一时半会用不上,就不推荐了
#3-1 - 2021-8-10 03:23
klion
非常感谢!
#3-2 - 2021-8-10 08:31
#4 - 2021-8-10 09:20
(你是GG还是MM啊?)
超合金组件不好使,建议直接开发油猴插件
#5 - 2021-8-10 14:09
(。´-д-)
超合金组件的好处是它是跟你的帐号绑定的
#6 - 2021-8-10 20:08
(DD雷达搜寻中...?)
(bgm38)没注释的话可能连自己都看不懂(指我
#7 - 2021-8-16 10:01
(往事如烟 随风飘远)
虽然不知道原理,超合金组件开多了似乎会引起冲突导致某些组件不工作……
之前好像有人发过类似帖子,我最近也遇到了这个问题(bgm38)
#7-1 - 2021-11-23 03:38
bangumi大西王
因为超合金组件是在网页加载完之后进一步发送网络请求加载的,所以如果开的超合金组件太多就会导致同一时间发送很多的网络请求。
而bgm有相关的安全措施(?),如果同一时刻请求数太多就会503失败一部分,导致部分超合金组件不能正常工作。
不过组件成功加载之后在浏览器里会有缓存,下一次加载相同版本的组件就可以直接从浏览器缓存里加载了。所以问题可能也不是特别严重,只有大量缓存正好失效的时候才会遇到。
#7-2 - 2021-11-23 10:37
uks
Trim21 说: 因为超合金组件是在网页加载完之后进一步发送网络请求加载的,所以如果开的超合金组件太多就会导致同一时间发送很多的网络请求。
而bgm有相关的安全措施(?),如果同一时刻请求数太多就会503失败一部分,导...
原来如此!
#7-3 - 2021-11-23 11:44
烈之斩
Trim21 说: 因为超合金组件是在网页加载完之后进一步发送网络请求加载的,所以如果开的超合金组件太多就会导致同一时间发送很多的网络请求。
而bgm有相关的安全措施(?),如果同一时刻请求数太多就会503失败一部分,导...
这个安全措施最草的是有时候在地址栏用opensearch如果输入太快会触发503(bgm38)