将URL保存到书签,扩展名为chrome [英] Saving URLs to the bookmarks ,chrome extension

查看:105
本文介绍了将URL保存到书签,扩展名为chrome的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是popup.js:

$ p $ 函数GetUrls()
{
var CurrentTabs = new阵列();
chrome.tabs.query({},function(tabs){
for(var i = 0; i< tabs.length; i ++)
{
CurrentTabs [i ] = tabs [i];
}
for(var i = 0; i< CurrentTabs.length; i ++)
{
document.write(< b> + CurrentTabs [i] .title +< button+< / b>+< br />< a href ='+ CurrentTabs [i] .url + _blank'>+ CurrentTabs [i] .url +< / a>< br />< br />);
}
});
}
window.addEventListener(DOMContentLoaded,GetUrls());

函数Save(){
var title = document.title;
var url = document.location.href;
chrome.bookmarks.create({'parentId':bookmarkBar.id,$ b $'document.title':'扩展书签'},
函数(newFolder){
alert( added folder:+ newFolder.title);
}
window.addEventListener(DOMContentLoaded,Save());

我想这个想法可以将网址保存为书签,但没有任何结果。
任何想法请关于我该怎么做?

这是一个保存书签的示例代码,当打开弹出窗口时,代码首先在书签树中搜索名为Extension Bookmarks的文件夹,如果找到,它将被保存为 destFolder 以供将来使用,如果不是,将在书签栏下创建一个具有该标题的新文件夹并设置为 destFolder $ b当按钮被点击时,一个Google书签被添加到'Extension Bookmarks'。



manifest.json

  {
name :Bookmarks Sample,
version:1.0,
manifest_version:2,
description:描述,

browser_action:
{
default_popup:popup.html
},

permissions:[
bookmarks,
选项卡

}

popup.html

 < html> 
< head>
< / head>
< body>
< / body>
< footer>
< script type =text / javascriptsrc =popup.js>< / script>
< / footer>
< / html>



popup.js

 函数GetUrls()
{
chrome.tabs.query({},function(tabs){
for(var i = 0; i< tabs.length ; i ++)
{
document.write(< a href ='+ tabs [i] .url +'target ='_ blank'>+< b>+标签[i] .title +< / b>+< / a>< / br>< button style = \width:100%; height:30px; \data-title = \+ tabs [i] .title +\data-url = \+ tabs [i] .url +\>在链接上方的书签< / button>);
}
var buttons = document.getElementsByTagName(button);
for(var i = 0; i< buttons.length; i ++)
{
buttons [i]。 addEventListener('click',function(){addBookmark(this.getAttribute(data-url),this.getAttribute(data-title));})
}
});
}
window.addEventListener(DOMContentLoaded,GetUrls());

var destFolder,bookmarkBar,finalMessage =;

chrome.bookmarks.getTree(findOrCreateDestinationFolder);

函数findOrCreateDestinationFolder(rootNodes)
{
var rootNode;
if(rootNodes.length> 0)
{
rootNode = rootNodes [0];
}
destFolder = findBookmarksFolder(rootNode,Extension Bookmarks);
if(!destFolder)
{
bookmarkBar = findBookmarksFolder(rootNode,Bookmarks bar);
chrome.bookmarks.create({parentId:bookmarkBar?bookmarkBar.id:1,title:Extension Bookmarks},function(bmk){
destFolder = bmk;
finalMessage + =在书签栏下创建的目的地文件夹。\\\

});
}
else
{
finalMessage + =目的地文件夹存在。\\\

}
}

函数findBookmarksFolder(rootNode,searchString)
{
if(rootNode.url)
{
return null;
}
else if(rootNode.title.indexOf(searchString)> = 0)
{
return rootNode;
}
for(var i = 0; i< rootNode.children.length; i ++)
{
var dest = findBookmarksFolder(rootNode.children [i],searchString);
if(dest)
{
return dest;
}
}
返回null;

$ b函数addBookmark(bookmarkURL,bookmarktitle)
{
if(destFolder)
{
chrome.bookmarks.create({title :bookmarktitle,parentId的:destFolder.id,网址:bookmarkURL});
finalMessage + =添加了bookmark.\\\
;
}
else
{
finalMessage + =无法添加bookmark.\\\
;
}
alert(finalMessage);
}


This is popup.js:

function GetUrls()
{
var CurrentTabs = new Array();
chrome.tabs.query({}, function (tabs) {
    for (var i = 0; i < tabs.length; i++)
    {
        CurrentTabs[i] = tabs[i];
    }
    for (var i = 0; i < CurrentTabs.length; i++) 
    {
document.write("<b>" + CurrentTabs[i].title + "<button " +"</b>" + "<br/><a href='" + CurrentTabs[i].url + "' target='_blank'>" + CurrentTabs[i].url + "</a><br/><br/>");
   }
});
}
window.addEventListener("DOMContentLoaded", GetUrls());

function Save(){
    var title = document.title;
    var url = document.location.href;
 chrome.bookmarks.create({'parentId': bookmarkBar.id,
                         'document.title': 'Extension bookmarks'},
                        function(newFolder) {
  alert("added folder: " + newFolder.title);
}
window.addEventListener("DOMContentLoaded",Save());

I tey this idea to save URLs to bookmarks,but nothing happen. Any idea please about how can i do that?

解决方案

Here is a sample code to save bookmarks. When the popup is opened, the code starts by searching for a folder titled 'Extension Bookmarks' in bookmarks tree. If found, it is saved as destFolder for future use and if not, a new folder with that title is created under Bookmarks bar and set as destFolder. When the button is clicked, a Google bookmark is added to 'Extension Bookmarks'.

manifest.json

{
    "name": "Bookmarks Sample",
    "version": "1.0",
    "manifest_version": 2,
    "description": "Description",

    "browser_action": 
    {
       "default_popup": "popup.html"
    },

    "permissions": [
        "bookmarks",
        "tabs"
     ]
}

popup.html

<html>
    <head>
    </head>
    <body>
    </body>
    <footer>
        <script type="text/javascript" src="popup.js"></script>
    </footer>
</html>

popup.js

function GetUrls()
{
chrome.tabs.query({}, function (tabs) {
    for (var i = 0; i < tabs.length; i++)
    {
        document.write("<a href='" + tabs[i].url + "' target='_blank'>" + "<b>" + tabs[i].title + "</b>" + "</a></br><button style=\"width:100%;height:30px;\" data-title=\""+tabs[i].title+"\" data-url=\""+tabs[i].url+"\">Bookmark above link</button>");
    }
    var buttons = document.getElementsByTagName("button");
    for(var i=0; i<buttons.length; i++)
    {
        buttons[i].addEventListener('click',function(){addBookmark(this.getAttribute("data-url"), this.getAttribute("data-title"));})
    }
});
}
window.addEventListener("DOMContentLoaded", GetUrls());

var destFolder, bookmarkBar, finalMessage="";

chrome.bookmarks.getTree(findOrCreateDestinationFolder);

function findOrCreateDestinationFolder(rootNodes)
{
    var rootNode;
    if(rootNodes.length>0)
    {
        rootNode = rootNodes[0];
    }
    destFolder = findBookmarksFolder(rootNode, "Extension Bookmarks");
    if(!destFolder)
    {
        bookmarkBar = findBookmarksFolder(rootNode,"Bookmarks bar");
        chrome.bookmarks.create({parentId:bookmarkBar?bookmarkBar.id:"1",title:"Extension Bookmarks"}, function(bmk){
            destFolder=bmk;
            finalMessage += "Destination Folder created under Bookmarks bar.\n"
        });
    }
    else
    {
        finalMessage += "Destination Folder exists.\n"
    }
}

function findBookmarksFolder(rootNode, searchString)
{
    if(rootNode.url)
    {
        return null;
    }
    else if(rootNode.title.indexOf(searchString)>=0)
    {
        return rootNode;
    }
    for(var i=0; i<rootNode.children.length; i++)
    {
        var dest = findBookmarksFolder(rootNode.children[i], searchString);
        if(dest)
        {
            return dest;
        }
    }
    return null;
}

function addBookmark(bookmarkURL, bookmarktitle)
{
    if(destFolder)
    {
        chrome.bookmarks.create({title:bookmarktitle,parentId:destFolder.id,url:bookmarkURL});
        finalMessage += "Added bookmark.\n";
    }
    else
    {
        finalMessage += "Could not add bookmark.\n";
    }
    alert(finalMessage);
}

这篇关于将URL保存到书签,扩展名为chrome的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆