【发布时间】:2021-07-04 12:58:26
【问题描述】:
我一直在开发一个小书签,它执行一些逻辑,然后将用户重定向到不同的页面。我遇到了一个问题,在重定向之后,Chrome 将书签的图标替换为重定向目标中的 favicon。
我正在尝试保留书签上的原始图标,因此想知道是否有任何方法可以防止这种行为?
举个例子。书签开始看起来像这样:
如果小书签将用户重定向到 Stack Overflow,那么点击小书签图标就会被替换:
我尝试了几种方法来执行重定向,所有这些方法都有这种行为:
-
书签是指向服务器端页面的链接,该页面通过返回带有
Location标头的 302 来执行重定向 -
书签是指向服务器端页面的链接,该页面在页面加载时执行 JavaScript,并使用
window.location.replace执行重定向
到目前为止,我还有一些其他方法可以避免这个特定问题,但它们也有其他缺点:
-
书签是指向服务器端页面的链接,该页面在页面加载时执行 JavaScript 以使用
window.location.assign执行重定向 - 如果用户单击后退按钮,他们将被带到我的页面,然后再次重定向它们,并可能导致用户陷入循环 -
书签是一个
javascript:链接,它发出fetch请求以在后台执行逻辑,然后使用window.location转到目标页面 - 这工作正常,除了在JS bookmarks are no longer allowed 的新空白选项卡上.
【问题讨论】:
-
您是否尝试过其他 3xx 状态码?
<meta http-equiv="Refresh">呢? -
感谢@user3840170 的建议 - 我已经尝试使用 303 并且在替换图标方面与 302 的行为相同。使用
<meta http-equiv="Refresh">是一个很好的建议 - 这会保留原始图标,但不幸的是在历史记录中添加了一个页面,因此问题中提到的问题与使用window.location.assign
标签: google-chrome redirect favicon bookmarklet