Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将URL保存到书签、chrome扩展_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 将URL保存到书签、chrome扩展

Javascript 将URL保存到书签、chrome扩展,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,这是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++)

这是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());
函数getURL() { var CurrentTabs=新数组(); chrome.tabs.query({},函数(tabs){ 对于(变量i=0;i文件.写入(“+CurrentTabs[i].标题+“这是保存书签的示例代码。打开弹出窗口时,代码首先在书签树中搜索名为“Extension bookmarks”的文件夹。如果找到,则将其保存为
destFolder
,以备将来使用。如果未找到,则在书签栏下创建一个具有该标题的新文件夹,并将其设置为
destFolder
。 单击按钮时,谷歌书签将添加到“扩展书签”中

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);
}
函数getURL() { chrome.tabs.query({},函数(tabs){ 对于(变量i=0;i链接上方的书签”); } var buttons=document.getElementsByTagName(“按钮”); 对于(var i=0;i0) { rootNode=rootNodes[0]; } destFolder=findBookmarksFolder(rootNode,“扩展书签”); 如果(!destFolder) { bookmarkBar=findBookmarksFolder(rootNode,“书签栏”); 创建({parentId:bookmarkBar?bookmarkBar.id:“1”,标题:“扩展书签”},函数(bmk){ destFolder=bmk; finalMessage+=“在书签栏下创建的目标文件夹。\n” }); } 其他的 { finalMessage+=“目标文件夹存在。\n” } } 函数findBookmarksFolder(rootNode,searchString) { if(rootNode.url) { 返回null; } else if(rootNode.title.indexOf(searchString)>=0) { 返回根节点; }
对于(var i=0;我几乎可以肯定您的问题出在“bookmarkBar.id”中。您是否看到一个错误,说“找不到未定义的id”或者类似的东西?我的理解是,你需要通过遍历书签树来找到你想要的父文件夹的id。我可以在有时间的时候编写一个工作代码,如果你的问题到那时还没有解决,我可以将其发布在这里。第一个错误应该是显而易见的。你没有任何名为findOrCreateDestinationFolder的函数。对于second错误,您不应该在HTML中添加事件处理程序。如果您在HTML中附加click事件处理程序,它将不起作用。请改用addEventListener()函数。@zambrey否我不在HTML中附加click事件处理程序这是popup.HTML:Links收集器主体{宽度:500px;高度:300px;}你对编程完全陌生吗?事实上,你在为document.write中的按钮添加HTML中的onclick事件。我正在更新答案中的代码。这正是你想要的,而且效果很好。现在没有人能比这更能帮助你了。@zambrey是的,我是javascript、HTML新手,这是我的第一个扩展。非常感谢你。这个扩展名为makes Google Chrome没有响应,顺便说一句,这与我想要的扩展不同,它只保存一个URL“Google”。我的扩展收集当前URL,我想选择其中的任何URL保存到书签。我如何在“popup.js”中的“bookmarks Sample”中使用这些函数为了满足我的需要?谢谢这是一个示例代码。我希望你能够根据自己的需要对其进行操作。我不确定“无响应”部分是否正确,它在我的系统中运行良好。但这是你需要使用的将书签保存到所需文件夹的方法。我再次尝试,似乎效果不错。尝试使用该方法,而不是使用确切的co如果您在任何地方卡住了,请在此处进行注释。好的,我将尝试操作它并告诉您我做了什么。这是问题中的代码错误:拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script src'self'”.我尝试使用此示例扩展来解决我的问题,但什么也没有发生。您有什么想法或提示吗?