javascript - 如何在 chrome 的书签 API 中获取数组?

标签 javascript google-chrome-extension

如果我写:

var source = new Array();
function doSomething(a){
   chrome.bookmarks.search(a,function(items){
      for(var i = 0;i<items.length;i++)
      {
          source[i] = items[i];

      }

   });
   console.log(source[0].title);
   alert(source[0].title);

}

在控制台中我可以看到值,但警告的是“未定义”。

有人能告诉我为什么以及如何写来获取值吗?

最佳答案

您正在错误的范围内执行 alert - 您应该在回调函数中执行此操作。试试这个:

function doSomething(a){
   chrome.bookmarks.search(a,function(items){
      var source = [];
      for(var i = 0;i<items.length;i++)
      {
          source[i] = items[i];

      }
      console.log(source[0].title);
      alert(source[0].title);   
      doSomethingWithResult(source); 
   });      

}

您在控制台中看到了正确的值,因为它显示了对此时已经填充的值的引用(在回调函数中)。

关于javascript - 如何在 chrome 的书签 API 中获取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291574/

相关文章:

JavaScript : how to know which tab is active

javascript - AngularJS 和 owl-carousel 环境中的数组串联

javascript - 在 Javascript/Jquery 的数据表列中将日期格式设置为 dd/mm/yyyy

javascript - D3 通过刷牙的焦点+上下文不显示散点图

javascript - chrome_url_overrides 不适用于隐身新标签

javascript - chrome.extension.getBackgroundPage 在 iframe 的扩展页面中未定义

javascript - 谷歌表格 API : "message": "The request is missing a valid API key."

javascript - 自动完成仅在页面加载或输入一个字母时运行一次,但仅运行一次

javascript - list 中是否有可能有两个单独的 css 文件,影响两个单独的域?

javascript - 在 Chrome 扩展中实现 facebook 登录