Finom
@Finom

Как пробросить канал связи между расширением для Хрома и встраиваемым айфреймом?

Пиилю расширение под Хром. Расширение должно встраивать айфрейм (это не зловред, если что), который может посылать запросы на мой сервак. Если посылаю запрос из самого расширения, всё ок. Если из айфрейма, то, закономерно, иногда появляется ошибка mixed content. Как я могу "пробросить" канал между айфреймом, у которого мало полномочий и расширением, которое имеет все необходимые полномочия? Например, вызываю функцию из айфрейма, которая говорит расширению "чувак, сделай такой вот запрос", расширение делает своё грязное дело и присылает фрейму ответ сервера.

Вот временный говнокод встраивания айфрейма:

chrome.browserAction.onClicked.addListener(function(tab) {
	var f = function(location) {
		if(window.___searchExtensionFrame) {
			if(document.body.contains(window.___searchExtensionFrame)) {
				document.body.removeChild(window.___searchExtensionFrame);
			} else {
				document.body.appendChild(window.___searchExtensionFrame);
			}
		} else {
			var iframe = window.___searchExtensionFrame = document.createElement('iframe');
			document.body.appendChild(iframe);
			iframe.src = location;
			iframe.style.position= 'fixed';
			iframe.style.top = 0
			iframe.style.right = 0;
			iframe.style.width = '400px';
			iframe.style.height = '100%';
		}

	};
	chrome.tabs.executeScript({
      code: `(${f})("адрес встраиваемой страницы")`
    });
});


Я могу из расширения вызвать код для айфрейма, с помощью chrome.tabs.executeScript, но как сделать наоборот?
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы