您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Coursera Extension -- Automatically go to the next video upon reaching the end of the current one
当前为
// ==UserScript== // @name Coursera EXT - Auto next video // @description Coursera Extension -- Automatically go to the next video upon reaching the end of the current one // @namespace http://sepczuk.com/ // @version 0.36 // @include https://*.coursera.org/*/lecture/view* // @match https://*.coursera.org/*/lecture/view* // @copyright 2012-2013, Damian Sepczuk, damian at sepczuk period delme com; loopkid // ==/UserScript== function mainWrapper(){ var debug = false; var US_SHORT_NAME = 'CEXT-ANVid'; var US_VERSION = 0.36; function debugLog(msg) { if (!debug) return; console.log(US_SHORT_NAME + ": " + msg); } /*! * jQuery Cookie Plugin * https://github.com/carhartl/jquery-cookie * * Copyright 2011, Klaus Hartl * Dual licensed under the MIT or GPL Version 2 licenses. * http://www.opensource.org/licenses/mit-license.php * http://www.opensource.org/licenses/GPL-2.0 */ (function($) { $.cookie = function(key, value, options) { // key and at least value given, set cookie... if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) { options = $.extend({}, options); if (value === null || value === undefined) { options.expires = -1; } if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setDate(t.getDate() + days); } value = String(value); return (document.cookie = [ encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } // key and possibly options given, get cookie... options = value || {}; var decode = options.raw ? function(s) { return s; } : decodeURIComponent; var pairs = document.cookie.split('; '); for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) { if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined } return null; }; })(jQuery); function main(){ debugLog("Running main!"); if (window.QL_player === undefined) { var retryAfterTImeout = 300; debugLog("QL_player window not found. Setting timeout to " + retryAfterTImeout + "ms."); setTimeout(main, retryAfterTImeout); return; } var CEXT_cookieName = 'autoNextVideo___ByFireBiker'; var isAutoNextEnabledC = $.cookie(CEXT_cookieName); if ( typeof(isAutoNextEnabledC) === 'undefined' ) { debugLog("Cookie " + CEXT_cookieName + " not found. Setting true."); isAutoNextEnabledC = true; } else { isAutoNextEnabledC = isAutoNextEnabledC == 'true'; debugLog("Cookie " + CEXT_cookieName + " found. Setting " + isAutoNextEnabledC + "."); } // style="margin: 0; padding: 0; vertical-align: bottom; position: relative; top: -2px; left: -5px;" var autoNextEl = $('<input type="checkbox" id="autonext" name="autonext" style="width: 13px; height: 13px; margin-right: .6em; margin-bottom: 2px;"/>') .click( function(e) { $.cookie(CEXT_cookieName, this.checked, {expires: 24*7*30*365*10, secure: true}); e.stopPropagation(); // don't click the underlying link }) .prependTo('.course-lecture-view-next-link') .prop('checked', isAutoNextEnabledC); if(window.top.wasPlayerFullScreen) { var makeFullScreenInt = setInterval(function(){ console.log("Testing full screen clickable... ") if($('.mejs-fullscreen-button button')){ console.log("... OK ") $('.mejs-fullscreen-button button').click(); clearInterval(makeFullScreenInt); } else { console.log("not yet!") } }, 10); } // Center frame on no-full screen /* // No more fancy box and centering on coursera site! $('.mejs-fullscreen-button button').click(function(){ var centerNonFullScreenItv = setInterval(function(){ if (!QL_player.mediaelement_handle.isFullScreen) { console.log("Trying to center fancy-box... ") window.parent.$.fancybox.center(); clearInterval(centerNonFullScreenItv); } }, 100); }); */ window.top.wasPlayerFullScreen = undefined; QL_player.mediaelement_media.addEventListener("ended", function(){ window.top.wasPlayerFullScreen = QL_player.mediaelement_handle.isFullScreen; var isAutoNextEnabled = autoNextEl[0].checked; if ( isAutoNextEnabled ) { $('.course-lecture-view-next-link').click(); } }); }; main(); }; if (!document.xmlVersion) { var script = document.createElement('script'); script.appendChild(document.createTextNode('('+ mainWrapper +')();')); document.documentElement.appendChild(script); }