Add the "Add My List" button to niconico video mylist page
You may also like [niconico video] Add the "Add My List" button to search r###lt page.
- // ==UserScript==
- // @name [niconico video] Add the "Add My List" button to mylist page
- // @name:ja [ニコニコ動画] マイリストページからマイリストするボタンを追加
- // @description Add the "Add My List" button to niconico video mylist page
- // @description:ja マイリストページからマイリストするボタンを追加
- // @namespace masshiro.blog
- // @version 20200412
- // @author masshiro
- // @license MIT License
- // @match http://www.nicovideo.jp/mylist/*
- // @match https://www.nicovideo.jp/mylist/*
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- var addButtons = function () {
- var span = document.createElement('span');
- span.style='color:#F00;text-decoration:underline;cursor:pointer';
- span.innerHTML='追加';
- var a = document.createElement('a');
- a.className = 'addmylist';
- a.appendChild(span);
- a.addEventListener('click',function () {
- window.open('http://www.nicovideo.jp/mylist_add/video/' + encodeURIComponent(document.querySelectorAll('.SYS_box_item')[0].querySelectorAll('a')[0].getAttribute('href').replace('watch/','')), 'nicomylistadd', 'width=500, height=400, menubar=no, scrollbars=no');
- },false);
- Array.prototype.forEach.call(document.querySelectorAll('.SYS_box_item_buttons p'), function(item,i) {
- if(typeof item.querySelectorAll('a.addmylist')[0] === 'undefined'){
- var as = a.cloneNode(true);
- as.addEventListener('click',function () {
- window.open('http://www.nicovideo.jp/mylist_add/video/' + encodeURIComponent(document.querySelectorAll('.SYS_box_item')[i].querySelectorAll('a')[0].getAttribute('href').replace('watch/','')), 'nicomylistadd', 'width=500, height=400, menubar=no, scrollbars=no');
- },false);
- item.appendChild(as);
- }
- });
- };
- var DOMObserverTimer = false;
- var DOMObserverConfig = {
- attributes: true,
- childList: true,
- subtree: true
- };
- var DOMObserver = new MutationObserver(function () {
- if (DOMObserverTimer !== 'false') {
- clearTimeout(DOMObserverTimer);
- }
- DOMObserverTimer = setTimeout(function () {
- DOMObserver.disconnect();
- addButtons();
- DOMObserver.observe(document.body, DOMObserverConfig);
- }, 100);
- });
- DOMObserver.observe(document.body, DOMObserverConfig);
- })();