Greasy Fork is available in English.

Bilibili-Gate

Bilibili 自定义首页

< Отзив за Bilibili-Gate

Въпрос/коментар

§
Публикуван на: 21.12.2024
Редактиран на: 21.12.2024

最新的0.30.2版本无法加载/显示推荐视频,一直是“加载中”。降级到0.30.1后可以正常使用

控制台的报错是:

userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:18952 Uncaught (in promise) TypeError: Object not disposable
    at __typeError2 (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:18952:11)
    at __using (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:18963:42)
    at userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:19030:23
    at memoizedFn.current (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:9999:30)
    at userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:19021:7
    at userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:10873:47
    at Id (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:201:137)
    at Xb (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:236:284)
    at Li (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:225:119)
    at db (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:115:182)
userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:6040 Uncaught (in promise) Error: servicesRegistry.val[tab=app-recommend] should not be nil
    at invariant (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:6040:11)
    at getServiceFromRegistry (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:18855:5)
    at userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:21573:25
    at memoizedFn.current (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:9999:30)
    at Proxy.<anonymous> (userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:21548:9)
magicdawnАвтор
§
Публикуван на: 21.12.2024
Редактиран на: 21.12.2024

环境?

浏览器: (如 Chrome)
浏览器版本: (如 113.0.5672.126)
脚本管理器: (如 暴力猴 / TamperMonkey)
脚本版本: (如 0.14.0, 请先更新到最新版本!!!)

自测 chrome 上的 violentmonkey / tampermonkey 均正常工作

§
Публикуван на: 21.12.2024

Chrome 131.0.6778.205
tampermonkey v5.3.3

是有点奇怪,我目前关掉了除tampermonkey外的所有扩展,B站首页生效的脚本也只有这一个
另外一台电脑用0.30.2版本脚本就是正常的

§
Публикуван на: 28.12.2024

反馈里已经不止一个用户有相同的这个问题了
具体错误就是AsyncDisposableStack not disposable
问题来自源码里的 https://github.com/magicdawn/Bilibili-Gate/blob/f9dd1d7938e52f413cc27cf2cefb5087b2a2e51f/src/components/RecGrid/useRefresh.ts#L73
await using stack = new AsyncDisposableStack()

调试见图,我不懂ts这些,不知道怎么修

magicdawnАвтор
§
Публикуван на: 28.12.2024

你可以跟踪一下 __knownSymbol 和 AsyncDisposalStack.prototype 上为何没有 [Symbol.asyncDispose] 方法

§
Публикуван на: 28.12.2024
Редактиран на: 28.12.2024

我水平一般,大概追查到AsyncDisposalStack是来自Tampermonkey内部的代码?
如图1,这是在创建AsyncDisposableStack对象时,跳到了一个虚拟机(应该是这个学名?)里,在搜索AsyncDisposableStack名称的变量,根据watch那里可以看到,AsyncDisposableStack是在o这个对象里面有,并且在图2里可以看到它里面的AsyncDisposableStack和我之前截图的AsyncDisposableStack是一致的。

AsyncDisposableStack里disposed属性的内容是以下错误信息,不知道是否相关?:
[Exception: TypeError: Method get AsyncDisposableStack.prototype.disposed called on incompatible receiver # at get disposed () at AsyncDisposableStack.invokeGetter (:3:28) at Object.has (:95:144) at chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:19177:43 at memoizedFn.current (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:10043:30) at chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:19168:7 at chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:10917:47 at Id (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:203:137) at Xb (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:238:284) at Li (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=Bilibili-Gate.user.js&id=0e16735b-a572-47d2-bfaa-a1f9f0db0231:227:119)]

§
Публикуван на: 28.12.2024
Редактиран на: 28.12.2024

上面说的AsyncDisposableStack.prototype好像是来自chrome自己的?在其他网页上看到的也差不多
不知道是否相关?https://issues.chromium.org/issues/385545743

magicdawnАвтор
§
Публикуван на: 28.12.2024

看起来是平台差异, macOS 上 chrome 没有内置这个,使用的是 core-js polifill.

你这是什么操作系统, 看起来是内置了 有 bug 的 AsyncDisposableStack.

magicdawnАвтор
§
Публикуван на: 28.12.2024

或者是其他插件设置了一个不正确的版本

magicdawnАвтор
§
Публикуван на: 28.12.2024
§
Публикуван на: 28.12.2024

windows系统

开发版一样的结果,还是一直加载中

§
Публикуван на: 28.12.2024
Редактиран на: 28.12.2024

备注:只开了Tampermonkey一个插件,并且只开了这一个脚本,排除了其他干扰

开发版的版本号是 0.30.5.2-g6b9c4c3

§
Публикуван на: 28.12.2024
Редактиран на: 28.12.2024

我找到问题原因了,是因为在chrome://flags/里启用了Experimental JavaScript
关闭后,chrome里就不再内置AsyncDisposableStack了:AsyncDisposableStack is not defined

哎,早该想到的,难怪另一台windows系统的电脑正常……

不过也验证了polifill不能覆盖掉已内置的

magicdawnАвтор
§
Публикуван на: 29.12.2024

chrome://flags/里启用了Experimental JavaScript

确实可以复现.

感谢你提供的信息, v0.30.6 现在兼容了 Experimental JavaScript flag 打开的情况.
你可以自由设置此 flag.

Публикувайте отговор

Влезте, за да публикувате отговор.