Firefox JavaScript书签问题

时间:2020-03-06 14:28:56  来源:igfitidea点击:

我正在使用以下JavaScript代码:

<script language="JavaScript1.2" type="text/javascript">
 function CreateBookmarkLink(title, url) {
    if (window.sidebar) {
        window.sidebar.addPanel(title, url,"");
    } else if( window.external ) {
        window.external.AddFavorite( url, title); }
    else if(window.opera && window.print) {
        return true; }
 }
</script>

这将为Firefox和IE创建一个书签。但是Firefox的链接将显示在浏览器的侧面板中,而不是显示在主屏幕中。我个人觉得这很烦人,并且正在寻找更好的解决方案。当然可以手动编辑书签,以使其不显示在侧面板中,但这需要额外的步骤。我只希望能够使人们为页面添加书签(该页面在用于构建特定方案的URL中包含很多GET信息)是一种简单的方法。

恐怕Firefox根本不可能在主屏幕上显示该页面(因为谷歌搜索该主题实际上没有任何值得使用的内容),但是我可能错过了一些东西。如果有人知道这是否可行,或者有解决方法,我很想听听。

解决方案

我们有一个特殊情况

if (window.sidebar)

然后'else'的分支不会将Firefox降落在第一个分支中,因此仅添加面板?

我认为这是Firefox的唯一解决方案...对于该操作,我有一个更好的功能,它甚至适用于Opera,并为其他"不支持"的浏览器显示一条消息。

<script type="text/javascript">
function addBookmark(url,name){
    if(window.sidebar && window.sidebar.addPanel) {
        window.sidebar.addPanel(name,url,''); //obsolete from FF 23.
} else if(window.opera && window.print) { 
        var e=document.createElement('a');
        e.setAttribute('href',url);
        e.setAttribute('title',name);
        e.setAttribute('rel','sidebar');
        e.click();
} else if(window.external) {
        try {
            window.external.AddFavorite(url,name);
        }
        catch(e){}
}
else
        alert("To add our website to your bookmarks use CTRL+D on Windows and Linux and Command+D on the Mac.");
}
</script>

北条

看来这是为Firefox添加书签的唯一方法。因此,FF需要进入第一分支才能发生任何事情。我在Google上搜索了更多内容,但我真的知道这不可能在FF中正确解决...