| 本帖最后由 岚依 于 2020-5-18 10:18 编辑 
 我不知道是不是我打开的姿势不对,但有些帖子就是无法加载外链的图片,怎么说呢。。。看上去好像这是其他(储存了图片的)网站的防盗链措施,但是它们加载不出来还是挺影响阅读体验的
  比如说这样:
 (帖子链接 https://bbs.nyasama.com/forum.php?mod=viewthread&tid=78092&page=6#pid813485 )
 
 图片永远加载不出来   图片永远加载不出来,在控制台里可以发现加载失败了,原因大概是B站服务器通过Referer发现了这边在盗链(
 
 可以看见加载失败了   
 原因大概是B站服务器通过Referer发现了图片是从喵玉加载的(   
 
 帖子实际上应该是这样的:
 
   所以,是不是可以考虑监听图片标签加载失败的事件,在加载失败后换别的referer / cors再试一遍,或者直接把图片标签的referer-policy设为no-referer,假如实在不行的话,直接上iframe
  
 PS: 我写了一个油猴脚本来暂时解决这个问题,也许能帮到有同样问题的人(
 它应该能够监听所有“延迟加载”的图片,并在图片加载失败的时候自动重新尝试一遍
 
 复制代码// ==UserScript==
// @name         Referer rescuer
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       lanyi
// @match        https://bbs.nyasama.com/*
// @grant        none
// ==/UserScript==
(function() {
  'use strict';
  document.body.querySelectorAll(`img[lazyloadthumb="1"]`).forEach(element => {
    console.log(`adding error handler for ${element.id}`);
    element.onerror = async () => {
      console.log(`rescuing ${element.id}`);
      const response = await fetch(element.getAttribute('src'), {
          "headers": {
          "accept": "*/*",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "cross-site"
        },
        "referrerPolicy": "no-referrer",
        "mode": "cors",
      });
      element.setAttribute('src', URL.createObjectURL(await response.blob()));
    };
  })
})();
 PSS:为什么手机版(触屏版)直接就连<img>标签都消失了啊喂!
 
   
 
 
 
 |