Skip to content

[知乎美化] 从推荐页首次进入搜索页时宽屏显示未生效,刷新后正常 #606

Description

@Onlydreams

问题描述

开启「知乎美化」的“宽屏显示 → 搜索页、话题页、圈子”后,如果从知乎推荐页使用顶部搜索框进入搜索结果页,首次进入时宽屏样式没有生效:

  • 右侧搜索推荐栏仍然显示;
  • 搜索结果主栏保持原来的窄宽度;
  • 刷新同一个搜索页面后,右侧栏消失,主栏宽度恢复正常。

直接打开或刷新搜索页时没有问题,仅在从推荐页通过站内搜索首次进入时复现。

测试环境:

  • Chrome + Tampermonkey
  • 知乎美化 v1.5.20
  • 同时启用了知乎增强 v2.3.29
  • 搜索页宽屏显示已开启

复现步骤:

  1. 打开知乎推荐页;
  2. 使用顶部搜索框进行任意搜索;
  3. 首次进入搜索结果页,观察右侧栏仍然存在;
  4. 刷新当前搜索页面;
  5. 右侧栏被隐藏,宽屏显示恢复正常。

初步分析可能与知乎的 SPA 路由跳转有关。

当前脚本启动时只调用一次 addStyle(),并且只有启动时满足 location.pathname === '/search',才会添加 style_widescreenDisplaySearch

https://github.com/XIU2/UserScript/blob/master/Zhihu-Beautification.user.js

从推荐页进入搜索页时没有发生完整页面刷新,因此脚本不会重新执行,搜索页宽屏样式也没有被补充;刷新后脚本直接在 /search 下启动,所以显示正常。

同时启用的「知乎增强」虽然会处理站内路由变化,但不会重新触发「知乎美化」的 addStyle()

建议可以考虑:

  1. 开启搜索页宽屏功能后,始终注入搜索页专用选择器;这些选择器在其他页面不存在,影响范围相对有限;
  2. 或监听 urlchange / History API,在路由变化后重新同步当前页面对应的宽屏样式。

Metadata

Metadata

Assignees

No one assigned

    Labels

    反馈问题某些功能失效 或 存在其他问题

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions