Chrome onMessage.addListener有时只会执行

时间:2012-08-08 12:28:20

标签: javascript jquery google-chrome google-chrome-extension

我的Chrome扩展程序中有一个关于javascript的小问题。我的弹出窗口包括用于从一个大网站搜索书籍的小表格。 因此,当我搜索图书名称时,它应该显示加载微调器,将xhr请求发送到books API,删除微调器,在新选项卡中打开options.html并显示结果。它有效,但有时只是。 所以你有什么建议?

popup.js

// var books includes JSON array of fetched books
    hrome.tabs.create({url: "options.html"}, function(tab){
      chrome.tabs.sendMessage(tab.id, {booksList: books});
    });

和options.js

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
 alert("OK");
});

但有时只显示OK ...为什么?

1 个答案:

答案 0 :(得分:0)

使用localStorage解决...

popup.js

localStorage.books = JSON.stringify(books);
chrome.tabs.create({
    url: "options.html"
}, function(tab) {
    console.log(books);
});​

options.js

var books = localStorage.books;
drawBooks(JSON.parse(books));