Katakana Terminator

Convert gairaigo (Japanese loan words) back to English

< Feedback on Katakana Terminator

Question/comment

§
Posted: 2020-04-21
Edited: 2020-04-21

脚本会导致 Bilibili HTML5 播放器在加载过程中消失

示例 https://www.bilibili.com/video/BV1ZC4y1s75r

§
Posted: 2020-04-22

试了一圈好像只有示例那个会消失?很迷惑

§
Posted: 2020-04-22

我今天安装这个脚本之后也出现了这个问题,似乎并不是只有这个视频才会消失。

Arnie97Author
§
Posted: 2020-04-22
Edited: 2020-04-22

嗯,能复现你们说的 bug,我试着定位下原因 在这个问题解决前,可以先屏蔽掉 B 站,在脚本第二行加上

// @exclude     https://*.bilibili.com/*
§
Posted: 2020-04-23

我最近姑且是这么用着来着……似乎只有视频有问题 所以我屏蔽的是 // @exclude ://.bilibili.com/video/*

§
Posted: 2020-04-23

这个应该说是B站的问题,B站的新版的播放器似乎有完整性校验逻辑,在加载过程中如果被更改注入内容就可能自毁,只针对B站视频播放页的话我折腾过这样是可行的

if(location.href.match('bilibili.com/video/')) {
    new MutationObserver(function (mutations, observer) {
        observer.disconnect();
        main('Katakana Terminator');
    }).observe(document.querySelector('.ops'), {childList: true, subtree: true});
}
else {
    main('Katakana Terminator');
}

不过这兼容方式挺突兀的,每个冲突网站单独做适配对这个脚本目前的执行逻辑来说并不实际……

Arnie97Author
§
Posted: 2020-04-23

@indefined said: 在加载过程中如果被更改注入内容就可能自毁,只针对B站视频播放页的话我折腾过这样是可行的 不过这兼容方式挺突兀的,每个冲突网站单独做适配对这个脚本目前的执行逻辑来说并不实际……

等待播放器加载完成确实可以回避这个问题。

其实此脚本不支持 AJAX 页面也是遇到了类似的困扰:我担心 MutationObserver 监听所有元素的变化,脚本性能会爆炸;但是如果不全部监听,就要给各个网站分别适配…

Post reply

Sign in to post a reply.