有些帖子由于Referer的原因无法正确加载图片
本帖最后由 岚依 于 2020-5-18 10:18 编辑我不知道是不是我打开的姿势不对,但有些帖子就是无法加载外链的图片,怎么说呢。。。看上去好像这是其他(储存了图片的)网站的防盗链措施,但是它们加载不出来还是挺影响阅读体验的{:09:}
比如说这样:
(帖子链接 https://bbs.nyasama.com/forum.php?mod=viewthread&tid=78092&page=6#pid813485 )
图片永远加载不出来,在控制台里可以发现加载失败了,原因大概是B站服务器通过Referer发现了这边在盗链(
帖子实际上应该是这样的:
所以,是不是可以考虑监听图片标签加载失败的事件,在加载失败后换别的referer / cors再试一遍,或者直接把图片标签的referer-policy设为no-referer,假如实在不行的话,直接上iframe {:12:}
PS: 我写了一个油猴脚本来暂时解决这个问题,也许能帮到有同样问题的人(
它应该能够监听所有“延迟加载”的图片,并在图片加载失败的时候自动重新尝试一遍
// ==UserScript==
// @name Referer rescuer
// @namespace http://tampermonkey.net/
// @version 0.1
// @descriptiontry to take over the world!
// @author lanyi
// @match https://bbs.nyasama.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
document.body.querySelectorAll(`img`).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>标签都消失了啊喂!
……出现这个问题一般是因为发帖人用了不可以外链的图床 也就是说图片的存储网站不允许把图片发到别的地方比如这里来 重新尝试几遍也没用的(
……这不是喵玉想处理就可以处理的事情 而且喵玉也不该管这事 只能提醒发帖的人把图片换个允许外链的图床或者转存到喵玉再放( ooxoo 发表于 2020-5-19 02:01
……出现这个问题一般是因为发帖人用了不可以外链的图床 也就是说图片的存储网站不允许把图片发到别的地方 ...
嗯。。确实有道理orz
页:
[1]