Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблема с chrome.runtime.sendMessage (https://javascript.ru/forum/misc/70965-problema-s-chrome-runtime-sendmessage.html)

Signal 16.10.2017 04:13

проблема с chrome.runtime.sendMessage callback undefined
 
не могу понять в чем проблема, в background.js

chrome.runtime.onMessage.addListener(function(request, sender, callback) {
	if(request.action == 'request') {
		$.ajax({
			url: request.url,
			type: request.type,
			dataType: request.dataType,
			data: request.data,
			success: function(data) {
				callback(data);
			},
			error: function() {
				callback({success: false, error: error.statusText});
			}
		});
		
	}  else if (request.action == 'loadfile') {
		$.ajax({
			url: chrome.extension.getURL('/'+request.file),
			type: 'get',
			dataType: 'text',
			data: {},
			success: function(data) {
				console.log(data); //====файл html загружен
				callback({"data":data});
			},
			error: function() {
				callback({success: false, error: error.statusText});
			}
		});
	}
});


в контентной странице запрос request работает
var url='http://...';
	var requst = {action:'request', url:url, type:'get', dataType:'json', data:{}}
	chrome.runtime.sendMessage(requst, function(RET_ZAPROS) {
		console.log(RET_ZAPROS);
	});


а запрос loadfile не работает
var requst={action: 'loadfile', file:'html/setups.html'}
	chrome.runtime.sendMessage(requst, function(RET_ANSWER) {
		console.log(RET_ANSWER); //====ЗДЕСЬ undefined
       });


причем в бэкграунде сам файл загружается но ответ приходит как undefined

Alexandroppolus 16.10.2017 11:14

Попробуй после 29 строки воткнуть return true;

Signal 16.10.2017 16:51

Цитата:

Сообщение от Alexandroppolus (Сообщение 467497)
Попробуй после 29 строки воткнуть return true;

Огромная от меня благодарность, самое интересное, что я этот return true в сообщении когда размещал сюда на форум его удалил, дуаю нафик он нужен надо и там удалть, удалил его в бекграунде и также перестало работать)))

теперь оба варианта заработали после return true
вот только про это return я что-то в документации не видел или хренова смотрел.
вообщем еще раз спасибо!

Alexandroppolus 16.10.2017 17:16

Цитата:

Сообщение от Signal
вот только про это return я что-то в документации не видел или хренова смотрел.

уж не знаю, как ты его не заметил
https://developer.chrome.com/apps/ru...vent-onMessage (строка болдом в описании параметра sendResponse)

Signal 16.10.2017 23:30

Цитата:

Сообщение от Alexandroppolus (Сообщение 467551)
уж не знаю, как ты его не заметил
https://developer.chrome.com/apps/ru...vent-onMessage (строка болдом в описании параметра sendResponse)

слушай, внатуре увидел!!! вот что значит когда тебе раскроют глаза!!!
спасибо огромное!! а вот еще вопрос, я там тему создал по этому вопросу, но может ты вкурсе как такое реализовать https://javascript.ru/forum/misc/709...ion-event.html


Часовой пояс GMT +3, время: 03:24.