JS解决E绅士Multi-Page Viewer手机浏览器无法重载图片的问题

由于E绅士为了降低服务器负载并加快加载速度,使用了类似于P2P的通过H@H分布式加载图片方式,因此难免会遇到加载失败的情况

正常情况下,在普通的单图浏览与Multi-Page Viewer浏览时,遇到加载失败的图片,都可以通过点击下方的图标或链接重载图片。

MPV本身有重载图片的功能
单图也可以点击右下链接重载图片

但是不知由于什么原因,在手机浏览器上,MPV的重载图标点击后是没有反应的。Edge、Chrome、Safari等浏览器均有此类问题。因此遇到这种情况往往只能手动切换到单图页面重载图片,非常弱智…

其实这个内容只要F12在开发者工具中打开触屏设备模式也一样可以复现,可以很容易的发现,按钮本身的功能是没问题的,但是被右边的触摸滑动操作盖住了…当你按在按钮上时候,其实并没有按在按钮上,而是在上下拖动页面(

实际上MPV中的重载按钮也只是执行了action_reload(3)方法(这里的参数3是页数)。所以只要手动调用这个方法,就可以实现和点击按钮相同的重载图片效果了。

最简单的办法自然就是直接在地址栏输入javascript:action_reload(3),将3替换为你要重载的页数。但是这样显然很麻烦,由于MPV会通过URL中的Hash来定位你当前在左侧缩略图栏点击跳转到的图片,所以可以根据url中的hash部分信息直接获取到当前正在看的页面,然后进行reload。

MPV中的网址格式是https://..../#page3,显然这里直接取第五位开始的字符就是当前页数了。因此实际代码也非常简单。

javascript:action_reload(window.location.hash.substring(5))

将以上代码添加为书签,在遇到MPV打不开的页面时,直接点击这个书签就可以重载图片了

当然这里其实有一个小问题,如果你直接打开MPV,还没有点击图片进行跳转,那么这个时候hash是没有内容的,如果这时候你要重载第一张图片,就会出现问题。虽然这种情况很少见,但是最好还是额外进行一下判断:

javascript:action_reload(window.location.hash=="" ? 1 : window.location.hash.substring(5))

经过测试,MPV运行此书签即可正常实现刷新页面的效果,终于可以彻底抛弃单页面浏览器了233

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇