【问题标题】:Bookmarking with javascript用 javascript 做书签
【发布时间】:2009-01-07 12:25:36
【问题描述】:

我想使用 javascript 代码为我的网页制作书签。我想要一个 javascript 代码来制作一个应该在新窗口中打开的书签。

我正在使用火狐。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    使用此功能:

    function bookmark_us(url, title){
    if (window.sidebar) // firefox
        window.sidebar.addPanel(title, url, "");
    else if(window.opera && window.print){ // opera
        var elem = document.createElement('a');
        elem.setAttribute('href',url);
        elem.setAttribute('title',title);
        elem.setAttribute('rel','sidebar');
        elem.click();
    }
    else if(document.all)// ie
        window.external.AddFavorite(url, title);
    }
    

    【讨论】:

    • Opera 代码在 9.x 中不再有效。而 IE 分支大概应该是 if (window.external && 'undefined' != typeof window.external.AddFavorite) { ... }
    【解决方案2】:

    在 Firefox 中目前没有办法做到这一点(并且在 bugzilla 中有 bugs filed 跟踪此缺陷)

    “没有办法做到这一点”是指您可以使用 Dreas 提供的功能,但您只能添加一个默认为侧边栏的书签。最终用户必须手动取消选中“在侧边栏中打开”选项。

    【讨论】:

      【解决方案3】:

      询问 Mozilla 用户组之一(可能是 mozilla.dev.tech.xulmozilla.dev.tech.xpcom)。可以想象,您可以创建正确的 XPCOM 对象来访问浏览器的书签管理器——这需要启用权限(用户必须明确批准此操作)。不能移植到其他浏览器(显然),并且可能不是这样做的好方法。

      我见过的大多数便于添加书签的网站(Jesse Ruderman's bookmarklet page 就是一个很好的例子)只是要求用户将适当的书签拖到他们选择的书签文件夹中,这似乎比尝试更直接/简单得多自动向书签添加内容。

      【讨论】:

        【解决方案4】:
        function bookmark_us(url, title){
            if (window.sidebar) // firefox
                window.sidebar.addPanel(title, url, "");
            else if(window.opera && window.print){ // opera
                var elem = document.createElement('a');
                elem.setAttribute('href',url);
                elem.setAttribute('title',title);
                elem.setAttribute('rel','sidebar');
                elem.click();
            } else if (document.all) // ie
                window.external.AddFavorite(url, title);
        }
        

        当用于:

        <a href="#" onclick="bookmark_us('http://www.yahoo.com/', 'Yahoo!');return false;">Bookmark Us</a>
        

        上述功能在 Opera 9.x 中不再正常工作。它只是导航到 www.yahoo.com。


        要在 Opera 9.x 中创建一个弹出“添加书签”对话框的链接,请使用以下命令:

        function bookmark_us(url, title) {
            if (window.sidebar && window.sidebar.addPanel) // firefox
                window.sidebar.addPanel(title, url, "");
            else if (window.external && 'undefined' != typeof window.external.AddFavorite) // ie
                window.external.AddFavorite(url, title);
        }
        
        <a href="http://www.yahoo.com/" rel="sidebar" title="Yahoo!" onclick="bookmark_us(this.href, this.title);return false;">Bookmark Us</a>
        

        【讨论】:

          猜你喜欢
          • 2011-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多