从列表中抽取Bilibili分P视频中当前part的标题,并写入到标题中
// ==UserScript==
// @name Bilibili分P标题fix
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 从列表中抽取Bilibili分P视频中当前part的标题,并写入到标题中
// @author tumuyan
// @match https://www.bilibili.com/video/*
// @icon https://www.google.com/s2/favicons?domain=bilibili.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
var title="";
function updateTitle(){
var searchStr = location.search;
var t=0;
if(searchStr.length>1){
t= Number(searchStr.replace(/.*(\?|&)p=([0-9]+)(&.*|$)/,"$2"))-1;
}
console.log("bilibili分P p="+t);
var p= document.getElementsByClassName("list-box")[0];
var l=p.childNodes[t];
if(l==undefined){
console.log("Bilibili分P 未找到列表");
return;
}
let h=document.getElementsByTagName("h1")[0];
if(title==""){
title=h.innerText;
}
let m=title+" / "+l.innerText.replace(/[\s0-9:]+$/,'');
console.log("bilibili分P title= "+m);
h.textContent=m;
let n=document.getElementsByTagName("title")[0];
n.textContent=m+" - 哔哩哔哩_bilibili";
}
setTimeout(function () {
var p= document.getElementsByClassName("list-box")[0];
if(p!=undefined){
// 观察者的选项(要观察哪些突变)
var config = { attributes: true, childList: true, subtree: true };
// 当观察到突变时执行的回调函数
var callback = function(mutationsList) {
mutationsList.forEach(function(item,index){
console.log("callback: "+item);
if (item.type == 'childList') {
console.log('有节点发生改变,当前节点的内容是:');
console.log(item.target.innerHTML);
} else if (item.type == 'attributes') {
console.log('修改了'+item.attributeName+'属性');
if(item.attributeName=='style'){
updateTitle();
}
}
});
};
// 创建一个链接到回调函数的观察者实例
var observer = new MutationObserver(callback);
// 开始观察已配置突变的目标节点
observer.observe(p, config);
updateTitle();
}
},3000)
})();