Я использую API для передачи сообщений , и я успешно передаю переменные между всплывающим окном и сценарием содержимого, но передача файла не работает, он возвращает пустое значение в сценарий содержимого вместоданные файла.
Я уже пробовал:
Всплывающее окно:
<input type="file" id="file">
$(document).on('change', '#file', function() {
var value = this.value;
var fileName = typeof value == 'string' ? value.match(/[^\/\\]+$/)[0] : value[0];
var fileData = this.files[0];
// this prints the file data successfully to console
console.log(fileData);
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {action: "sendFile", file: fileData });
});
});
Сценарий содержимого:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.hasOwnProperty("action") && request.action == 'sendFile') {
console.log(file); // <-- empty
}
});
Есть ликакие-либо ограничения в API сообщений?или я что-то не так делаю?
Спасибо.