расширение chrome, jstree, iframe: перетаскивание

Я новичок в разработке расширений Chrome, и я создаю тот, для которого требуется боковая панель (а не всплывающее окно), например firebug, но с правой стороны. Я использую jsTree (с json_data) на боковой панели и хочу перетаскивать элементы с веб-страницы на боковую панель.

До сих пор для создания боковой панели я использовал div, присоединенный к телу с z-индексом, чтобы он отображался над веб-страницей, но стили элементов на моей боковой панели изменены из-за css веб-сайта.

Поэтому я подумал, что могу использовать iframe, чтобы избежать какой-либо несовместимости css на моей боковой панели. Я создаю iframe динамически с помощью src="chrome-extension:///page.html".

Мне удалось заставить мой jstree нормально работать в моем iframe, загрузив сценарии jquery+jstree непосредственно на исходной странице iframe... это довольно плохо, но я не могу заставить сценарий содержимого использоваться для исходной страницы iframe ( несмотря на "all_frames": правда).

Я хотел бы перетащить элементы со страницы веб-сайта в jstree в iframe... Я нашел iframeFix: true и refreshPositions: true, но, похоже, это ничего не меняет... Кто-нибудь знает, как это сделать ?

Если я не использую iframe, согласно многочисленным примерам в Интернете, я могу легко поместить элемент в jstree с помощью плагина dnd. я не пробовал; даже если это сработает, CSS на моей боковой панели будет изменен, и я не могу этого допустить.

Я видел технику «слой div над iframe». Я могу успешно удалить элемент с веб-страницы в этом div над iframe. Но когда я пытаюсь отправить сообщение (содержащее данные отброшенных элементов) в iframe через порт, iframe не получает сообщение. Моя идея в этом случае состоит в том, чтобы каким-то образом добавить сообщение в данные json jstree.

Я прочитал все посты, которые я нашел о content_scripts и iframe, я знаю об ошибках... Я не могу понять, исправлено это или нет, и если это так, я не знаю, как сделать так, чтобы связь порта между iframe и скриптом контента работает. Кто-нибудь знает об этом больше?

Я также должен добавить, что, когда я пытаюсь установить связь между сценарием содержимого и iframe, используя порт, и копировать прослушиватель из iframe на фоновой странице, фоновая страница получает сообщение просто отлично... что просто означает, что порт связь работает нормально, я полагаю, но не между сценарием контента и iframe...

Есть предположения? я действительно застрял


person user1144446    schedule 29.04.2012    source источник


Ответы (1)


отвечая на мой собственный вопрос; Я не нашел решения о том, как использовать iframes в chrome-расширении с jstree.

Я просто иду по хардкорному пути; добавьте <div> к <body> и убедитесь, проведя много тестов, что css внутри моего <div> останется изолированным от css веб-страницы.

Ваше здоровье

person user1144446    schedule 05.05.2012