0
var getShortenedUrl = function () {

  chrome.tabs.getSelected(null, function (tab) {

    var request_data = {
      'command': 'generate',
      'params': {
        'url': tab.url,
        'code': text_field.value
      }
    }

    chrome.extension.sendRequest(request_data, function (data) {
      switch (data.status) {
        case 'OK':
          setTextField(data.shortened_url)
          bindBtnToCoopy()
          chrome.storage.local.get(data.shortened_url, function (arr) {
            if (!arr[data.shortened_url]) {
              chrome.storage.local.set(
                {data.shortened_url:
                 tab.url}) /* <-- this thing throws an error */
            }
          })
          break
          /* ... */
      }
    })
  })
}

https://github.com/noformnocontent/git-io-chrome/blob/master/chrome/popup.js#L96


如果我把这chrome.storage.local.set部分评论出来,一切都是“完美的”

4

1 回答 1

0

正如@pimvdb 提到的问题一样,要保存一个对象,我必须使用一个对象。

if (!arr[data.shortened_url]) {
  var urlPair = {}
  urlPair[data.shortened_url] = tab.url
  chrome.storage.local.set(urlPair)
}

从那时起,我还发布了“Git.io for Chrome”的 v.0.5,请参阅http://git.io/crome了解更多信息

于 2013-02-05T02:13:42.327 回答