Задать вопрос
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, но как сделать наоборот?
  • Вопрос задан
  • 154 просмотра
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
15 дек. 2024, в 01:44
400 руб./за проект
15 дек. 2024, в 01:17
100000 руб./за проект
14 дек. 2024, в 23:53
1000 руб./за проект