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 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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,
	}
)