add video donwload func in m.facebook.com

add video donwload func in m.facebook.com,plus add video height to window height.

当前为 2018-04-15 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         add video donwload func in m.facebook.com
// @namespace    add video donwload func in m.facebook.com
// @version      0.1
// @description  add video donwload func in m.facebook.com,plus add video height to window height.
// @author       zero0evolution
// @include      /^https\:\/\/m\.facebook\.com/
// @grant        none
// ==/UserScript==


// remove controlslist="nodownload"

var addVideoDownloadFunc = (videoElem)=>{
	if(videoElem.hasAttribute("controlslist")){
		videoElem.controlsList.value = videoElem.controlsList.value.replace(/nodownload/img,"")
	}
	videoElem.style.setProperty("height","100vh","important")
	videoElem.style.setProperty("width","auto","important")


	var nextImgElem = videoElem.nextElementSibling
	if(nextImgElem instanceof Element && nextImgElem.matches(".img")){
		nextImgElem.style.setProperty("height","100vh","important")
		nextImgElem.style.setProperty("width","auto","important")
		nextImgElem.style.setProperty("background-size","auto","important")
	}
}

var videoFilter = (topElem) =>{
	if(topElem.matches("video")){
		addVideoDownloadFunc(topElem)
	}
	for(let eachElem of topElem.querySelectorAll("video")){
		addVideoDownloadFunc(eachElem)
	}
}

videoFilter(document.documentElement)

//建立新的觀察物件
var observerObj = new MutationObserver(
	function (mutationObjs){
		for(let eachMutationObj of mutationObjs){
			for(let eachAddNode of eachMutationObj.addedNodes){
				videoFilter(eachAddNode)
			}
		}
	}
)

observerObj.observe(
	document.documentElement,{
		childList:true,
		subtree:true,
	}
)