Embed to HTML5

Replaces media embed tags with HTML5 equivalents

2016-01-30 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name          Embed to HTML5
// @namespace     DoomTay
// @description   Replaces media embed tags with HTML5 equivalents
// @version       1.0.2
// @grant         none

// ==/UserScript==

var embeds = document.embeds;

var audioFiletypes = [".mp3",".wav",".ogg"];
var videoFiletypes = [".mp4"];

for(var e = embeds.length - 1; e >= 0; e--)
{
	if(audioFiletypes.some(elem => embeds[e].src.indexOf(elem) > -1)) var replacement = document.createElement("audio");
	else if(videoFiletypes.some(elem => embeds[e].src.indexOf(elem) > -1)) var replacement = document.createElement("video");
	else continue;
	replacement.src = decodeURIComponent(embeds[e].src);
	replacement.width = embeds[e].width;
	replacement.height = embeds[e].height;
	if(embeds[e].hidden) replacement.style.display = "none";
	replacement.autoplay = parseBool(embeds[e].getAttribute("autostart") || embeds[e].getAttribute("autoplay")) || audioFiletypes.some(elem => window.location.href.indexOf(elem) > -1);
	replacement.controls = parseBool(embeds[e].getAttribute("controller"));
	replacement.loop = parseBool(embeds[e].getAttribute("loop"));
	if(embeds[e].parentNode.nodeName == "OBJECT")
	{
		embeds[e].parentNode.parentNode.insertBefore(replacement,embeds[e].parentNode);
		embeds[e].parentNode.parentNode.removeChild(embeds[e].parentNode);
	}
	else
	{
		embeds[e].parentNode.insertBefore(replacement,embeds[e]);
		embeds[e].parentNode.removeChild(embeds[e]);
	}
}

function parseBool(string)
{
	return string == "true";
}