【问题标题】:A Firefox javascript bookmarking problem一个 Firefox javascript 书签问题
【发布时间】:2008-09-20 11:48:34
【问题描述】:

我正在使用以下 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 在主屏幕中显示该页面(因为谷歌搜索这个主题几乎没有任何值得使用的东西),但我可能错过了一些东西。如果有人知道这是否可行,或者是否有解决方法,我很想听听。

【问题讨论】:

标签: javascript firefox bookmarks


【解决方案1】:

对于 Firefox,无需通过脚本为页面书签设置任何 JavaScript,只有带有 titlerel="sidebar" 的锚标记可以执行此功能

<a href="http://www.google.com" title="Google" rel="sidebar">Bookmark This Page</a>

我已经在 FF9 上对其进行了测试,并且运行良好。

当您点击链接时,Firefox 将打开一个对话框新建书签,如果您不想在侧边栏加载此书签,请取消选中 在侧边栏中加载此书签 来自对话框。

【讨论】:

【解决方案2】:

我认为这是 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 中的书签。
  • 如果你有一个 id="sidebar" 的元素,这里代码会中断:stackoverflow.com/questions/17747578/…
【解决方案3】:

你有一个特殊情况

if (window.sidebar) 

然后是 'else' 的分支 - Firefox 不会在第一个分支中着陆,因此只添加面板?

【讨论】:

  • 我的意思是 - 而不是写 'else if( window.external )' 做一个新的 if so 你也把它添加为书签
【解决方案4】:

北条,

这似乎是为 Firefox 添加书签的唯一方法。所以 FF 需要登陆第一个分支才能发生任何事情。我用谷歌搜索了一些,但我真的明白这在 FF 中是不可能正确解决的......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多