百度贴吧图片点击放大

直接在当前页面点击查看原图(包括签名档)。支持图片的多开、拖拽、垂直或水平滚动和缩放旋转

< Обсуждения 百度贴吧图片点击放大

Вопрос/комментарий

第40行
/* className分别指向BDE_Image新图,j_user_sign签名档,d_content_img老图。只有鼠标左键点击以上图片且不是图册贴里的图片时才会放大图片。(可修改) */
if (!e.button && 'className:BDE_Image,j_user_sign,d_content_img'.includes(t.className,10) && t.parentNode.nodeName !== 'A') {

t.parentNode.nodeName !== 'A'
似乎在有些浏览器不能正常发挥作用,会造成无限请求
t.parentNode.nodeName
P
target.tagName
A

能正常工作的有
firefox 103.0.2 (64 位)
不能正常工作的有
Microsoft Edge
版本 105.0.1343.42 (正式版本) (64 位)
Google Chrome
版本 87.0.4280.66(正式版本) (64 位)

bug效果
无限请求报错
GET https://tieba.baidu.com/p/undefined net::ERR_NAME_NOT_RESOLVED

解决方法
补一个target.tagName !== 'A'

lliwhxАвтор
§
Создано: 15.10.2022
Отредактировано: 15.10.2022

感谢反馈BUG。

因为我用Chrome 106没这样的问题。

电脑问题没法使用firefox和Edge。

所以可以帮个忙,看看

在什么帖子多少楼的位置会出现这种情况?最好提供一下目标图片的F12审查元素给我看看。谢谢。

e.button是只有鼠标左键点击起作用;

'className:BDE_Image,j_user_sign,d_content_img'.includes(t.className,10)是帖子内相关样式的图片起作用,表情和广告都不是这个样式;

至于t.parentNode.nodeName !== 'A',主要是阻止在图册里起作用,图册里的图片父元素是个a链接,<a><img></a>

没道理会出现target.tagName !== 'A'的情况?因为target是目标最底层元素,应该是图片,而不太可能是一个a链接。正常的贴吧里的图片是这样<div><img></div>

目前贴吧的图册,原本自己的点击图片功能有大BUG,第二页开始无法在点击图片;所以未来的大更新我会取消掉他的那个改成我的这个“点击放大”功能(如果有这个大更新的话)。

lliwhxАвтор
§
Создано: 15.10.2022

有没有可能是跟你其他的脚本冲突了,单独开一个看看?

§
Создано: 15.10.2022
Отредактировано: 15.10.2022

关掉了除了Tampermonkey® by Jan Biniok 外所有的插件
测试环境
Google Chrome
版本 87.0.4280.66(正式版本)(64 位)
Tampermonkey 4.18.0

Microsoft Edge
版本 106.0.1370.47 (正式版本) (64 位)
谷歌商店的Tampermonkey 4.18.0

均关闭了其它脚本
只要点击了楼中楼的翻页按钮就会触发bug
只能说目前这个脚本看浏览器,故障后的错误请求很高频,久了难说会不会出事

firefox 103.0.2 (64 位)
Tampermonkey 4.18.0
不会报错

lliwhxАвтор
§
Создано: 15.10.2022
Отредактировано: 15.10.2022

非常感谢,我知道原因了。 在目前的这个版本里的确算是个重大BUG,非常感谢。

实际上是''.includes()的问题,他对空字符串‘’也会进行匹配,导致了图片的无限创建,然后无限报错。

我真的没想到会出现楼中楼触发的情况,楼中楼翻页后按钮的className就空了。

我自己使用的内侧版里是早早发现改掉了,使用了数组来匹配[].includes(),想着应该上线版不会触发就没理,直到忘记。

不过,这也让我知道,关于图片创建错误会导致无限循环创建的问题,i.onerror需要重新思考修改。啧啧啧

Ответить

Войдите, чтобы ответить.