|
发表于
2023-8-16 17:48:45
|
显示全部楼层
本帖最后由 MikerChen 于 2023-8-16 17:49 编辑
b站前端页面好像更新了,所以也改了一下代码:
- // ==UserScript==
- // [url=home.php?mod=space&uid=23356]@name[/url] bilibili三连按钮demo
- // @namespace https://bbs.tampermonkey.net.cn/
- // @version 0.1
- // @description 给bilibili增加一个真三连按钮
- // @author Wyz
- // [url=home.php?mod=space&uid=52134]@match[/url] https://www.bilibili.com/video/*
- // @grant none
- // @run-at document-end
- // ==/UserScript==
- let triple=document.createElement("button");
- triple.innerText="三连";
- triple.style.background="#757575";//颜色弄得差不多吧
- triple.style.color="#fff";
- triple.onclick=function(){
- //三连代码
- let httpRequest = new XMLHttpRequest();
- httpRequest.open('POST', 'https://api.bilibili.com/x/web-interface/archive/like/triple');
- httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
- httpRequest.withCredentials = true;//设置跨域发送
- let aid=window.__INITIAL_STATE__.aid;
- let sKey="bili_jct";
- let csrf=decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[-.+*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
- httpRequest.send('aid='+aid+'&csrf='+csrf);
- httpRequest.onreadystatechange = function () {
- if (httpRequest.readyState == 4 && httpRequest.status == 200) {
- var json = JSON.parse(httpRequest.responseText);
- console.log(json);
- if(json.code==0){
- alert("三连成功!刷新页面可见");
- }else{
- alert("三连失败/(ㄒoㄒ)/~~");
- }
- }
- };
- };
- let ops=document.querySelector('#arc_toolbar_report').querySelector(':first-child');
- console.log(ops);
- //插入三连之后好像会重新生成,不添加就不会重新生成,暂时没弄清什么情况,先这样处理了.
- //主要作用是监听ops的修改,等它修改完成之后再插入我们的三连按钮,另外注意run-at是document-end,要等待ops生成之后再监听,不然query返回null会报错
- //这个事件会多次调用,但是我们insertBefore插入如果元素存在,只是修改而不会新增
- ops.addEventListener("DOMNodeInserted", function(event) {
- let share=document.querySelector('#share-btn-outer');
- console.log("share-parent"+share.parentElement.parentElement.parentElement.outerHTML);
- share.parentElement.parentElement.parentElement.insertBefore(triple,share.parentElement.parentElement);
- });
复制代码
|
|