// ==UserScript==
// @name [VIP影视解析工具]红狐弹幕播放器
// @namespace http://tampermonkey.net/
// @version 0.4.6
// @description 基于红狐弹幕解析编写的脚本,支持腾讯视频、爱奇艺、优酷、芒果TV、PPTV、Bilibili、ACFUN等
// @author Aomine
// @match *.rdfplayer.mrgaocloud.com/*
// @match *:rdfplayer.mrgaocloud.com/player/*
// @match *v.qq.com/x*
// @match *v.qq.com/p*
// @match *v.qq.com/cover*
// @match *v.qq.com/tv/*
// @match *.youku.com/v*
// @match *m.youku.com/*
// @match *.iqiyi.com/v_*
// @match *.iqiyi.com/w_*
// @match *.iqiyi.com/a_*
// @match *.iq.com/play/*
// @match *.bilibili.com/video/*
// @match *.bilibili.com/anime/*
// @match *.bilibili.com/bangumi/play/*
// @match *.bilibili.com/s/*
// @match *.pptv.com/show/*
// @match *.acfun.cn/*
// @match *.mgtv.com/b/*
// @license GPL License
// @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA5MSA5MSIgaWQ9IkxheWVyXzEiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojNEU3QTlFO30NCgkuc3Qxe2ZpbGw6I0YwQURBQjt9DQo8L3N0eWxlPgoNPGc+Cg08Zz4KDTxnPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTU1LjQsNTMuNmMyLjEtMi4xLDMuMi00LjgsMS43LThjLTIuMy00LjctMTAuMy01LjUtMTMuMy0xLjNjLTAuNiwwLjgsMC4xLDEuOCwwLjgsMi4xICAgICBjMi4zLDAuOCw1LjMtMSw3LjQsMC40YzMuNiwyLjMtMC44LDUuMi0zLjIsNS45Yy0yLjcsMC44LTEuNiw0LjksMS4yLDQuMmMzLjctMC45LDYuMSwyLjgsNC40LDZjLTEuNywzLTUuMywzLjItOCwxLjcgICAgIGMtMy43LTItOC4xLDMuMS00LjYsNmMyLjgsMi40LDcuNiwxLjcsMTAuOCwwLjNjMy4xLTEuNCw1LjctNCw2LjYtNy40QzYwLjEsNTkuNiw1OC40LDU1LjYsNTUuNCw1My42eiIvPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTMzLjIsMjAuOWMtMi44LDEuNS01LjEsMy45LTcuMSw2LjRjLTIuNC0zLjEtNS42LTYuMi05LjMtNi4zYy0xLjcsMC0yLjUsMi4xLTEuMywzLjJjMi45LDMsNiw1LjMsOC4zLDguOSAgICAgYzEuMSwxLjgsMy40LDEuNiw0LjYsMGMyLjMtMy4xLDUuMy01LjMsOC4zLTcuOEMzOS4xLDIzLjIsMzUuOSwxOS40LDMzLjIsMjAuOXoiLz4KDTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03MS45LDIxLjdjLTIuOCwxLjUtNS4xLDMuOS03LjEsNi40Yy0yLjQtMy4xLTUuNi02LjItOS4zLTYuM2MtMS43LDAtMi41LDIuMS0xLjMsMy4yYzIuOSwzLDYsNS4zLDguMyw4LjkgICAgIGMxLjEsMS44LDMuNCwxLjYsNC42LDBjMi4zLTMuMSw1LjMtNS4zLDguMy03LjhDNzcuOSwyNCw3NC43LDIwLjIsNzEuOSwyMS43eiIvPgoNPC9nPgoNPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwLjQsNTIuMWMxLjQtMS40LDIuOC0yLjcsNC4yLTQuMWMxLjQtMS40LDMuNC0yLjcsMy40LTQuOGMwLTEuMi0xLTIuMi0yLjItMi4yYy0yLjMsMC4xLTMuNSwyLjItNC44LDMuOCAgICBjLTEuMiwxLjYtMi4yLDMuNS0zLjIsNS4zQzcuMSw1MS43LDkuMSw1My41LDEwLjQsNTIuMUwxMC40LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjEuMiw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzE4LjMsNTIuNSwyMC4xLDUzLjYsMjEuMiw1Mi44TDIxLjIsNTIuOHoiLz4KDTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02NS42LDUyLjFjMS40LTEuNCwyLjgtMi43LDQuMi00LjFjMS40LTEuNCwzLjQtMi43LDMuNC00LjhjMC0xLjItMS0yLjItMi4yLTIuMmMtMi4zLDAuMS0zLjUsMi4yLTQuOCwzLjggICAgYy0xLjIsMS42LTIuMiwzLjUtMy4yLDUuM0M2Mi4zLDUxLjcsNjQuMyw1My41LDY1LjYsNTIuMUw2NS42LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzYuNCw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzczLjUsNTIuNSw3NS4zLDUzLjYsNzYuNCw1Mi44TDc2LjQsNTIuOHoiLz4KDTwvZz4KDTwvZz4KDTwvc3ZnPg==
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 弹幕解析功能
var am = false;
var moving = false;
var logo = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA5MSA5MSIgaWQ9IkxheWVyXzEiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojNEU3QTlFO30NCgkuc3Qxe2ZpbGw6I0YwQURBQjt9DQo8L3N0eWxlPgoNPGc+Cg08Zz4KDTxnPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTU1LjQsNTMuNmMyLjEtMi4xLDMuMi00LjgsMS43LThjLTIuMy00LjctMTAuMy01LjUtMTMuMy0xLjNjLTAuNiwwLjgsMC4xLDEuOCwwLjgsMi4xICAgICBjMi4zLDAuOCw1LjMtMSw3LjQsMC40YzMuNiwyLjMtMC44LDUuMi0zLjIsNS45Yy0yLjcsMC44LTEuNiw0LjksMS4yLDQuMmMzLjctMC45LDYuMSwyLjgsNC40LDZjLTEuNywzLTUuMywzLjItOCwxLjcgICAgIGMtMy43LTItOC4xLDMuMS00LjYsNmMyLjgsMi40LDcuNiwxLjcsMTAuOCwwLjNjMy4xLTEuNCw1LjctNCw2LjYtNy40QzYwLjEsNTkuNiw1OC40LDU1LjYsNTUuNCw1My42eiIvPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTMzLjIsMjAuOWMtMi44LDEuNS01LjEsMy45LTcuMSw2LjRjLTIuNC0zLjEtNS42LTYuMi05LjMtNi4zYy0xLjcsMC0yLjUsMi4xLTEuMywzLjJjMi45LDMsNiw1LjMsOC4zLDguOSAgICAgYzEuMSwxLjgsMy40LDEuNiw0LjYsMGMyLjMtMy4xLDUuMy01LjMsOC4zLTcuOEMzOS4xLDIzLjIsMzUuOSwxOS40LDMzLjIsMjAuOXoiLz4KDTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03MS45LDIxLjdjLTIuOCwxLjUtNS4xLDMuOS03LjEsNi40Yy0yLjQtMy4xLTUuNi02LjItOS4zLTYuM2MtMS43LDAtMi41LDIuMS0xLjMsMy4yYzIuOSwzLDYsNS4zLDguMyw4LjkgICAgIGMxLjEsMS44LDMuNCwxLjYsNC42LDBjMi4zLTMuMSw1LjMtNS4zLDguMy03LjhDNzcuOSwyNCw3NC43LDIwLjIsNzEuOSwyMS43eiIvPgoNPC9nPgoNPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwLjQsNTIuMWMxLjQtMS40LDIuOC0yLjcsNC4yLTQuMWMxLjQtMS40LDMuNC0yLjcsMy40LTQuOGMwLTEuMi0xLTIuMi0yLjItMi4yYy0yLjMsMC4xLTMuNSwyLjItNC44LDMuOCAgICBjLTEuMiwxLjYtMi4yLDMuNS0zLjIsNS4zQzcuMSw1MS43LDkuMSw1My41LDEwLjQsNTIuMUwxMC40LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjEuMiw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzE4LjMsNTIuNSwyMC4xLDUzLjYsMjEuMiw1Mi44TDIxLjIsNTIuOHoiLz4KDTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02NS42LDUyLjFjMS40LTEuNCwyLjgtMi43LDQuMi00LjFjMS40LTEuNCwzLjQtMi43LDMuNC00LjhjMC0xLjItMS0yLjItMi4yLTIuMmMtMi4zLDAuMS0zLjUsMi4yLTQuOCwzLjggICAgYy0xLjIsMS42LTIuMiwzLjUtMy4yLDUuM0M2Mi4zLDUxLjcsNjQuMyw1My41LDY1LjYsNTIuMUw2NS42LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzYuNCw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzczLjUsNTIuNSw3NS4zLDUzLjYsNzYuNCw1Mi44TDc2LjQsNTIuOHoiLz4KDTwvZz4KDTwvZz4KDTwvc3ZnPg==";;
// 如果当前网址是 https://rdfplayer.mrgaocloud.com/,不创建图标
if (window.location.hostname !== 'rdfplayer.mrgaocloud.com') {
// 拖拽功能
var startDrag = function(target) {
var getCss = function(o, key) {
return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o, false)[key];
};
var params = { left: 0, top: 0, currentX: 0, currentY: 0, rectLeft: 0, rectTop: 0, rectRight: 0 };
if (getCss(target, "position") === "static") {
target.style.position = "relative";
}
if (getCss(target, "left") !== "auto") {
params.left = getCss(target, "left");
}
if (getCss(target, "top") !== "auto") {
params.top = getCss(target, "top");
}
target.addEventListener("mousedown", function(event) {
moving = true;
params.rectLeft = target.getBoundingClientRect().left + document.body.scrollLeft;
params.rectTop = target.getBoundingClientRect().top + document.body.scrollTop;
params.rectRight = document.documentElement.clientWidth - target.getBoundingClientRect().right;
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
var e = event;
params.currentX = e.clientX;
params.currentY = e.clientY;
document.addEventListener("mousemove", function(event) {
if (moving == false) {
return 0;
}
am = true;
var e = event ? event : window.event;
var nowX = e.clientX,
nowY = e.clientY;
var disX = nowX - params.currentX,
disY = nowY - params.currentY;
if (disX < 0 && Math.abs(disX) > params.rectLeft) {
disX = -params.rectLeft;
}
if (disY < 0 && Math.abs(disY) > params.rectTop) {
disY = -params.rectTop;
}
if (disX > 0 && disX > params.rectRight) {
disX = params.rectRight;
}
target.style.left = parseInt(params.left) + disX + "px";
target.style.top = parseInt(params.top) + disY + "px";
});
document.addEventListener("mouseup", function() {
moving = false;
setTimeout(function() { am = false; }, 50);
if (getCss(target, "left") !== "auto") {
params.left = getCss(target, "left");
}
if (getCss(target, "top") !== "auto") {
params.top = getCss(target, "top");
}
});
});
};
// 创建图标
var ele = document.createElement("img");
ele.id = "imgid";
ele.style = "margin: 150px 0px 0px 10px;width:60px;position: fixed;top:0px;z-index: 99999;";
ele.src = logo;
document.body.appendChild(ele);
startDrag(document.getElementById('imgid'));
// 跳转解析站并传递B站地址的函数
function jumpToPlayer() {
if (am == false) {
// 重置状态
hasPlayed = false;
moving = false;
// 直接打开带URL参数的解析站
var videoUrl = encodeURIComponent(window.location.href);
var targetUrl = `https://rdfplayer.mrgaocloud.com/?url=${videoUrl}`;
// 打开新页面
window.open(targetUrl, "_blank");
}
}
// 点击事件
document.getElementById("imgid").addEventListener("click", jumpToPlayer);
// 键盘快捷键事件
document.addEventListener("keydown", function(e) {
// 检测是否按下 Shift + F9
if (e.shiftKey && e.key === "F9") {
jumpToPlayer();
}
});
}
// 创建自定义提示框
const customHint = document.createElement('div');
customHint.style.position = 'absolute';
customHint.style.top = '50%'; // 修改为 50%,垂直居中
customHint.style.left = '50%'; // 修改为 50%,水平居中
customHint.style.transform = 'translate(-50%, -50%)'; // 修改为 translate(-50%, -50%),精确居中
customHint.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
customHint.style.color = 'white';
customHint.style.padding = '5px 10px';
customHint.style.borderRadius = '5px';
customHint.style.display = 'none';
document.body.appendChild(customHint);
// 进度条前进90秒: Ctrl + →
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === 'ArrowRight') {
const video = document.querySelector('video');
if (video) {
event.preventDefault(); // 阻止默认行为
video.currentTime += 90; // 前进90秒
customHint.textContent = '快进90秒';
customHint.style.display = 'block';
setTimeout(() => customHint.style.display = 'none', 1000); // 1秒后隐藏提示
}
}
});
// 进度条后退90秒: Ctrl + ←
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === 'ArrowLeft') {
const video = document.querySelector('video');
if (video) {
event.preventDefault(); // 阻止默认行为
video.currentTime -= 90; // 后退90秒
customHint.textContent = '快退90秒';
customHint.style.display = 'block';
setTimeout(() => customHint.style.display = 'none', 1000); // 1秒后隐藏提示
}
}
});
// 限定网页生效的条件
if (window.location.hostname.includes('rdfplayer.mrgaocloud.com') || window.location.pathname.includes('/player/')) {
// 弹幕开关功能:D键控制
document.addEventListener('keydown', function(event) {
if (event.key === 'D' || event.key === 'd') {
const commentButton = document.querySelector('.rdfplayer-comment-state-icon');
if (commentButton) {
commentButton.click(); // 模拟点击切换弹幕
}
}
});
// 全屏开关功能:Enter
document.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
const fullScreenButton = document.querySelector('.rdfplayer-full-icon');
const exitFullScreenButton = document.querySelector('.rdfplayer-icon.rdfplayer-full-icon');
// 使用 document.fullscreenElement 判断是否处于全屏状态
if (document.fullscreenElement) {
// 如果是全屏,点击退出全屏按钮
if (exitFullScreenButton) {
exitFullScreenButton.click();
}
} else {
// 如果不是全屏,点击进入全屏按钮
if (fullScreenButton) {
fullScreenButton.click();
}
}
}
});
// 空格控制播放
let isSpaceKeyEnabled = true; // 标志位,控制空格键功能是否启用
// 播放/暂停视频的函数
function toggleVideoPlayback() {
const videoElement = document.querySelector('video'); // 获取 video 元素
if (videoElement) {
if (videoElement.paused) {
videoElement.play(); // 如果视频暂停,则播放
} else {
videoElement.pause(); // 如果视频正在播放,则暂停
}
}
}
// 键盘事件监听
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape' || event.key === 'Enter') {
// 如果按下 Esc 或 Enter 键,禁用空格键功能
isSpaceKeyEnabled = false;
}
if (event.key === ' ' && isSpaceKeyEnabled) { // 检测空格键且功能未禁用
event.preventDefault(); // 防止空格键触发页面滚动
toggleVideoPlayback(); // 调用播放/暂停函数
}
});
// 鼠标点击事件监听
document.addEventListener('click', function(event) {
if (event.button === 0) { // 检测鼠标左键点击
const videoElement = document.querySelector('video');
if (videoElement && videoElement.contains(event.target)) { // 检查点击目标是否是视频本身
toggleVideoPlayback(); // 调用播放/暂停函数
}
isSpaceKeyEnabled = false; // 禁用空格键功能
}
});
}
// 自动播放功能
let hasPlayed = false;
const iframe = document.getElementById("RDFPLAYER_VOD_IFRAME");
if (!iframe) {
console.error("Iframe not found!");
return;
}
// 显示自定义提示框
function showFocusTip() {
// 创建自定义提示框
const tipBox = document.createElement("div");
tipBox.id = "focus-tip-box";
tipBox.style.position = "fixed";
tipBox.style.top = "20px";
tipBox.style.left = "50%";
tipBox.style.transform = "translateX(-50%)";
tipBox.style.padding = "10px 20px";
tipBox.style.backgroundColor = "rgba(0, 0, 0, 0.8)";
tipBox.style.color = "white";
tipBox.style.borderRadius = "5px";
tipBox.style.zIndex = "9999";
tipBox.style.fontSize = "16px";
tipBox.innerText = "为确保视频正常进入全屏,可选择点击一次播放器的加载页";
// 添加到页面上
document.body.appendChild(tipBox);
// 自动关闭提示框,5秒后
setTimeout(() => {
if (tipBox) {
tipBox.style.display = "none"; // 隐藏提示框
}
}, 5000);
}
// 处理 iframe 加载后的操作
function handleIframeLoad() {
if (hasPlayed) return;
hasPlayed = true;
// 延迟执行播放操作
setTimeout(function() {
const playButton = document.getElementById("ssdi");
if (playButton) {
playButton.click();
} else {
console.error("Play button not found!");
}
const message = { action: "play" };
iframe.contentWindow.postMessage(message, "*");
// 增加延迟以确保内容加载完毕
setTimeout(() => {
enterFullscreen();
}, 2000); // 增加2秒延迟
}, 3000);
}
// 监听 iframe 的 onload 事件
iframe.onload = handleIframeLoad;
// 监听 iframe src 属性变化
let previousSrc = iframe.src;
const observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
previousSrc = iframe.src;
iframe.onload = handleIframeLoad;
}
});
});
observer.observe(iframe, { attributes: true });
// 检查 iframe src 是否为空或特定值,如果是,则设置新的 src,并弹出提示框
if (!iframe.src || iframe.src === "https://rdfplayer.mrgaocloud.com/player/?url=") {
iframe.src = "https://rdfplayer.mrgaocloud.com/player/?url=VALID_VIDEO_URL&t=" + Date.now();
showFocusTip(); // 弹出提示框
} else {
iframe.src = iframe.src + "&t=" + Date.now(); // 添加时间戳参数
}
//进入全屏
function enterFullscreen() {
try {
if (iframe.requestFullscreen) {
iframe.requestFullscreen().then(() => {
iframe.contentWindow.focus(); // 将焦点设置到 iframe 的 contentWindow
});
} else if (iframe.mozRequestFullScreen) {
iframe.mozRequestFullScreen().then(() => {
iframe.contentWindow.focus();
});
} else if (iframe.webkitRequestFullscreen) {
iframe.webkitRequestFullscreen().then(() => {
iframe.contentWindow.focus();
});
} else if (iframe.msRequestFullscreen) {
iframe.msRequestFullscreen().then(() => {
iframe.contentWindow.focus();
});
} else {
console.error("Fullscreen API is not supported.");
}
} catch (error) {
console.error("Failed to enter fullscreen:", error);
}
}
})();
(function() {
'use strict';
// 用于广告拦截的元素选择器列表
const selectorsToBlock = [
'#pause-ad-close',
'#pause-ad-tip',
'#pause-ad-vod',
'.ad-type-vod.player-pause-ad',
'.footer > p'
];
// 拦截图片广告
const blockedImageUrls = [
'lcdn.redfoxw.com/cache/taobao/ad2.gif'
];
// 移除广告元素的函数
function removeAds() {
selectorsToBlock.forEach(selector => {
document.querySelectorAll(selector).forEach(element => {
element.remove();
});
});
// 拦截图片广告
document.querySelectorAll('img').forEach(img => {
if (blockedImageUrls.some(url => img.src.includes(url))) {
img.remove();
}
});
}
// 使用 MutationObserver 监测 DOM 变化
const observer = new MutationObserver(function(mutations) {
removeAds();
});
// 开始观察 DOM 变化
observer.observe(document.body, {
childList: true,
subtree: true
});
// 初始执行一次
removeAds();
// 监听动态加载的内容(如通过 AJAX)
document.addEventListener('DOMContentLoaded', removeAds);
window.addEventListener('load', removeAds);
})();