更换window.location时,FireFox 3.6 - 9会丢弃图标

Psi*_*ius 12 javascript favicon firefox

问题仅存在于FireFox上(从3.6到现在9),其他浏览器都可以.我的代码看起来像这样:

jQuery.extend({
    AnchorFromUrl : function(url) {
        var anchor = url.substr(1).replace('.html','');
        $.fizzer_anchor = anchor;
        window.location.hash = anchor;
        return anchor;
    }
});
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,如果我在window.location.hash = anchor之前发出警报; 单击"确定"按钮后,行不会消失,删除该警报()并使您的图标消失.

注意:如果您这样做,它也会丢弃图标window.location = something.

Rap*_*dro 25

我有同样的问题,但发现这个有趣的帖子,它适用于我,它只是添加2行的JavaScript.当哈希元素改变时出现问题,因此,我们需要通过javascript重新建立它

http://kilianvalkhof.com/2010/javascript/the-case-of-the-disappearing-favicon/

这是代码

function setFavicon() {
  var link = $('link[type="image/x-icon"]').remove().attr("href");
  $('<link href="'+ link +'" rel="shortcut icon" type="image/x-icon" />').appendTo('head');
}
Run Code Online (Sandbox Code Playgroud)

或者(感谢Mottie)使用jQuery分离

$('link[type*=icon]').detach().appendTo('head');
Run Code Online (Sandbox Code Playgroud)

  • 更普遍适用的选择器是`$('link [rel~ ="icon"]')`. (3认同)
  • 我仍然在Firefox 14.0.1中遇到这个问题,我发现`detach()`的工作原理很好:`$('link [type*= icon]').detach().appendTo('head ");` (3认同)

Mar*_*pel -5

我也注意到了这种行为。Firefox 时不时地会掉落一个图标,或者拒绝将该图标放在我的书签旁边。我认为这是 Firefox 的一个错误。

为了解决这个问题(以及其他功能),我安装了Favicon Picker 插件。当然,这并不能解决您在其他计算机(例如客户端等)上的问题。

  • 是的,这是一个 [firefox bug](https://bugzilla.mozilla.org/show_bug.cgi?id=519028)。这不是一个答案。@Phisius我想知道为什么这个被接受,另一个答案应该是。 (4认同)