您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Pause or mute HTML5 audio/video on leaving a tab and restore them back on returning.
当前为
- // ==UserScript==
- // @name Pause/Mute HTML5 Audio/Video On Leaving Tab
- // @namespace PauseMuteHTML5AudioVideoAudioOnLeavingTab
- // @description Pause or mute HTML5 audio/video on leaving a tab and restore them back on returning.
- // @version 1.0.1
- // @author jcunews
- // @include *://*/*
- // @grant none
- // q@run-at document-start
- // ==/UserScript==
- //=== Configuration Start ===
- var muteInsteadOfPause = false; //set to `true` to mute instead of pause
- //=== Configuration End ===
- var sHidden, sVisibilityChange, elements;
- if ("undefined" !== typeof document.hidden) {
- sHidden = "hidden";
- sVisibilityChange = "visibilitychange";
- } else if ("undefined" !== typeof document.webkitHidden) {
- sHidden = "webkitHidden";
- sVisibilityChange = "webkitvisibilitychange";
- } else if ("undefined" !== typeof document.msHidden) {
- sHidden = "msHidden";
- sVisibilityChange = "msvisibilitychange";
- }
- function checkStatus() {
- if (!document[sHidden]) {
- elements.forEach(function(v) {
- if (muteInsteadOfPause) {
- v.muted = false;
- } else v.play();
- });
- } else {
- elements = Array.prototype.slice.call(document.querySelectorAll("audio, video")).filter(
- function(v) {
- if (muteInsteadOfPause) {
- if (!v.muted) {
- v.muted = true;
- return true;
- }
- } else if (!v.paused) {
- v.pause();
- return true;
- }
- return false;
- }
- );
- }
- }
- function init() {
- document.removeEventListener(sVisibilityChange, checkStatus);
- document.addEventListener(sVisibilityChange, checkStatus);
- }
- init();
- //Support for Structured Page Fragments. For e.g. YouTube
- addEventListener("spfdone", init);