您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Attempts to fix broken images by replacing them with working timestamps based on JSON results
当前为
- // ==UserScript==
- // @name Wayback Machine Image Fixer
- // @namespace DoomTay
- // @description Attempts to fix broken images by replacing them with working timestamps based on JSON results
- // @include http://web.archive.org/web/*
- // @exclude http://web.archive.org/web/*.jpg
- // @exclude http://web.archive.org/web/*.jpeg
- // @exclude http://web.archive.org/web/*.png
- // @exclude http://web.archive.org/web/*.gif
- // @exclude http://web.archive.org/web/*.bmp
- // @version 1.1.3
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- var pics = document.images;
- var timestamp = /web\/(\d{1,14})/.exec(window.location.href);
- function replaceImage(target)
- {
- var originalURL = target.src.substring(target.src.lastIndexOf("http"));
- var newURL = GM_xmlhttpRequest({
- url: "http://archive.org/wayback/available?url=" + originalURL + "&closest=" + timestamp,
- method: "GET",
- headers: {"Accept": "application/json"},
- onload: function(response) {
- if (response.readyState == 4) {
- if(response.status == 503)
- {
- //We caught a 503, which means that the API wasn't "ready" for us yet. Let's try again
- replaceImage(target)
- }
- else if(JSON.parse(response.responseText).archived_snapshots.closest == null)
- {
- //Try and "expose" image links that are unclickable due to the image not loading
- if(target.alt == "" && target.width == 0 && target.parentNode.nodeName == "A")
- {
- //Changing the source is pretty hacky, but it's the only way I can think of to turn "invisible" image links into something clickable
- target.src = target.src.substring(target.src.lastIndexOf("http"));
- target.width = 25;
- target.height = 25;
- }
- return;
- }
- else target.src = JSON.parse(response.responseText)archived_snapshots.closest.url;
- }
- }
- });
- }
- function evaluateImage(pic)
- {
- GM_xmlhttpRequest({
- url: pic.src,
- method: "HEAD",
- onload: function(response) {
- //Going off of response code is unreliable. Sometimes an image will return a status code of 200 even though it would redirect to an error page should you view the image directly, so we're looking at content type instead
- if(response.responseHeaders.indexOf("Content-Type: text/html") > -1)
- {
- replaceImage(pic);
- }
- }
- });
- }
- for(var i = 0; i < pics.length; i++)
- {
- //Skip over stuff related to the Wayback Machine toolbar and data URIs
- if((document.getElementById("wm-ipp") && document.getElementById("wm-ipp").contains(pics[i])) || pics[i].src.indexOf("data:") > -1) continue;
- evaluateImage(pics[i]);
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址