// ==UserScript== // @name PlayNext@115.com // @namespace http://tampermonkey.net/ // @version 0.1 // @description Add next button for 115 HTML5 player // @author zaypen // @match http*://*/* // @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js // @grant none // @downloadURL none // ==/UserScript== /*jslint browser:true*/ /*global _ */ (function() { 'use strict'; function main() { var items = Array.apply(null, document.querySelectorAll('.video-playlist .vpl-container .item-list li')); var remainingItems = _.dropWhile(items, function (item) { return item.className !== 'hover'; }); var nextItem = _.head(_.tail(remainingItems)); var playNext = function(e) { window.location.href = nextItem.querySelector('a').href; }; var nextButton = document.createElement('a'); nextButton.href = 'javascript:;'; nextButton.innerHTML = ''; nextButton.className = 'btn-switch'; nextButton.onclick = playNext; var playButton = document.querySelector('.operate-bar a[btn="play"]'); if (playButton && nextItem) { playButton.insertAdjacentElement('afterend', nextButton); document.body.addEventListener('keyup', function(e) { if (e.key === "PageDown") { playNext(); } }); return true; } } function retry(fn, interval, times) { var ret = fn(); if (!ret && times) { setTimeout(function () { retry(fn, interval, times--); }, interval); } } retry(main, 500, 10); })();