您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add I'm feeling lucky button to Youtube
// ==UserScript== // @name Youtube: I'm feeling lucky // @namespace http://tampermonkey.net/ // @version 1.0.5 // @description Add I'm feeling lucky button to Youtube // @author divide100 // @match *://www.youtube.com/* // @grant GM_openInTab // @require https://greasyfork.org/scripts/5679-wait-for-elements/code/Wait%20For%20Elements.js?version=46106 // ==/UserScript== (function() { 'use strict'; var util = { log: function () { var args = [].slice.call(arguments); args.unshift('%c' + SCRIPT_NAME + ':', 'font-weight: bold;color: purple;'); console.log.apply(console, args); }, q: function(query, context) { return (context || document).querySelector(query); }, qq: function(query, context) { return [].slice.call((context || document).querySelectorAll(query)); }, xmlReq: function(url, cb, errcb){ var xhr = new XMLHttpRequest(); xhr.open('get', url, true); xhr.responseType = 'document'; xhr.onload = cb; xhr.onerror = errcb; xhr.send(); } }; var SCRIPT_NAME = "Youtube's feeling lucky"; util.log('Starting'); waitForElems('#search-btn', function(searchBtn) { var btn = document.createElement('button'); // copy classes btn.classList = searchBtn.classList; btn.style.paddingLeft = '10px'; btn.style.paddingRight = '10px'; btn.textContent = 'Feelin\' Lucky'; var input = util.q('#masthead-search-term'); btn.onmousedown = function(e) { if(e.button === 1) { e.preventDefault(); } }; btn.onclick = function(e) { e.preventDefault(); var inputValue = input.value.trim(); if(inputValue) { btn.disabled = true; util.xmlReq('https://www.youtube.com/results?search_query=' + encodeURIComponent(inputValue), function(xhe) { var link = util.q('.yt-lockup-video .yt-uix-tile .yt-lockup-thumbnail a', xhe.target.response.body).href; if(e.button === 1) { GM_openInTab(link, false); } else { window.location.href = link; } btn.disabled = false; }, function() { btn.disabled = false; }); } return false; }; searchBtn.parentNode.insertBefore(btn, searchBtn); }); })();