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

时间:2010-03-09 14:35:08

标签: javascript firefox favicon

Problem仅存在于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;
    }
});

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

注意:如果您只是window.location = something,它也会删除图标。

3 个答案:

答案 0 :(得分: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');
}

或者(感谢Mottie)使用jQuery detach

$('link[type*=icon]').detach().appendTo('head');

答案 1 :(得分:1)

它对我有用:

var link = document.createElement('link');
link.type = 'image/x-icon';
link.rel = 'shortcut icon';
link.href = 'FAV_ICON_URL';
document.getElementsByTagName('head')[0].appendChild(link);

参考:Changing Website Icon Dynamically

答案 2 :(得分:-4)

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

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