2014-09-02 2 views
1

Мой последний и последний вопрос. Я не могу использовать функцию .downloads в расширении. Я получаю ошибкуChrome Extension: Скачать

Не удается прочитать свойство «загрузить» в неопределенном

Осторожно я удалил часть кода, чтобы он мог поместиться здесь Мой код

var contentInput = document.createElement("div") 
contentInput.innerHTML = '<div style="position:relative; width: 145px;height: 30px;right: 0px;left: 14px;padding-top: 0px;top: 0px;"><div class="btn-primary btn-medium" style="position: absolute;left: 0px;" draggable="true">Download .OBJ</div><p style="position:relative; top: 33px; font-size:15px">Click to download the OBJ version of this asset.</p> </div>' 
contentInput = contentInput.children[0].children[0] 

localStorage.setItem("OBJURL", jsonObject.Url); //It's saved! 
}); 

var objurl = localStorage.getItem("OBJURL"); 
SendRequest(objurl, function (objfinal) { 

}); 
    chrome.downloads.download({url:objurl,filename:"wat23333.obj",conflictAction:"overwrite"}) 
    chrome.extension.sendRequest({ 
     action: "EditContent", 
     type: assetType, 
     name: assetName, 
     content: contentData 
    }) 

} 

файл манифеста

Разрешения

"permissions": [ 
    "http://*.roblox.com/*", 
    "http://*.rbxcdn.com/*", 
    "downloads", 
    "downloads.open" 
], 

ответ

2

Ошибка «Невозможно прочитать свойство« загрузить неопределенный »означает, что объект chrome не имеет на нем свойства загрузки. Обычно это указывает на отсутствие разрешения на доступ к API - запрашиваете ли вы разрешение на скачивание в манифесте?

5

Догадка Девлина была почти правильной.

Это происходит, когда-либо из этих условий:

  1. У вас нет разрешения
  2. В API вы обращаетесь вызывается из скрипта содержимого, когда он не доступен для скрипта содержимого.

У вас есть второй случай, очевидно. Вам нужно будет передать сообщение на справочную страницу и обработать действие оттуда.

+1

Любые советы? Пример кода примера? : D – user3851593

+0

Совет, прочтите [Руководство по сообщениям] (https://developer.chrome.com/extensions/messaging). – Xan

+1

Я довольно глуп. Я не знаю, как это использовать. – user3851593

0

Для меня решение Xan также не работает. Для меня работало в том, чтобы перейти к chrome: // расширениям и удалить расширение из хром. Впоследствии я снова добавил расширение. Тогда это сработало.