2012-04-29 2 views
1

Я новичок в разработке chrome extensions, и я строю тот, который требует боковую панель (а не всплывающее окно), как firebug, но с правой стороны. Я использую jsTree (с json_data) в боковой панели, и я хочу перетащить элементы с веб-страницы на боковую панель.chrome extension, jstree, iframe: drag and drop

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

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

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

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

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

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

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

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

Любые мысли? Я действительно застрял

ответ

0

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

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

Cheers