您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Slideshare Slide Downloader (images)
- // ==UserScript==
- // @name Slideshare Downloader
- // @namespace Slideshare Slide Downloader
- // @version 0.4
- // @description Slideshare Slide Downloader (images)
- // @author Hosamn Based on DownloadBoxy By QQBoxy
- // @match https://www.slideshare.net/*
- // @grant none
- // ==/UserScript==
- function getHighestResImg(element) {
- if (element.getAttribute("srcset")) {
- return element
- .getAttribute("srcset")
- .split(",")
- .reduce(
- (acc, item) => {
- let [url, width] = item.trim().split(" ");
- width = parseInt(width);
- if (width > acc.width) return { width, url };
- return acc;
- },
- { width: 0, url: "" }
- ).url;
- }
- return element.getAttribute("src");
- }
- function slideshareboxy() {
- var e = document.getElementById('slide-container').getElementsByTagName('source');
- var o = "";
- var a ;
- for(var key=0; key<e.length; key+=1) {
- if(e[key].attributes.srcset) {
- var url = getHighestResImg(e[key])
- a = document.createElement("a");
- a.target = url;
- a.href = url;
- a.download = key;
- a.click();
- // let picBlob = new Blob(url, {type: 'text/html'});
- // tar??.gz
- // https://stackoverflow.com/questions/49736214/force-a-download-to-download-image-instead-of-opening-url-link-to-image
- }
- }
- }
- function downloadboxy() {
- var btn = document.createElement("button");
- btn.onclick = function() {
- slideshareboxy();
- };
- btn.innerHTML = ">> Download Images <<";
- btn.style.textDecoration = "underline"
- document.getElementsByClassName('player-toolbar-item')[0].appendChild(btn);
- }
- function waitForElementToDisplay(selector, callback, checkFrequencyInMs, timeoutInMs) {
- var startTimeInMs = Date.now();
- (function loopSearch() {
- if (document.querySelector(selector) != null) {
- callback();
- return;
- }
- else {
- setTimeout(function () {
- if (timeoutInMs && Date.now() - startTimeInMs > timeoutInMs) {
- return;
- loopSearch();
- }
- }, checkFrequencyInMs);
- }
- })();
- }
- waitForElementToDisplay("#player-toolbar", downloadboxy, 100,10000);