Удержание всех открываемых документов внутри элемента <browser>
Проблема эта встала не только передо мной, но такая же проблема уже поднималась в ru_mozdev@lj (прочитайте это обсуждение - там кое-что обсуждалось)
Проблема в том, что необходимо заставить Mozill-у открывать все окна внутри элемента <browser>
(или на самый худой конец <iframe>
).
Тоесть, если на страничке загруженной внутри тэга <browser>
нажать на ссылку типа <a href="someurl" target="_top">
- она заменит собой приложение целиком вместо того чтобы загрузиться внутри этого самого <browser>
.
Тоже самое касается всяческих JavaScript-овых открываний окон и т.д.
В принципе, для имеющейся у меня сейчас задачи будет достаточно если мое приложение останется на месте - пусть даже target="_blank"
открываются в новых окнах, но в принципе, вопрос глобален.
Один из вариантов - пытаться реализовывать приложение в качестве сайдбаров, тулбаров и т.д. оставляя основную часть браузера в покое и ничего туда не загружая - это кое-как мне подойдет в данном случае, но опять же не решает вопрос глобально.
Буду рад если кто-нибудь поделится собственными мыслями или хотя бы укажет мне на какие-то обсуждения по этой теме.
В принципе, Multizilla много чего делает, но все это делается переопределением функции
[[http://lxr.mozilla.org/seamonkey/source/xpfe/communicator/resources/content/contentAreaClick.js#174 contentAreaClick()]]
.
e.cancelBubble()
.
http://www.xulplanet.com/tutorials/mozsdk/observerserv.php - добавленный только что раздел про observers содержит упоминание подписки на сообщения "domwindowopened" - это может помочь справляться с новыми открытыми окнами вне зависимости от того как они открыты - сам не пробовал пока что, но можно посмотреть что там к чему и принудительно открывать табы вместо окон, например.
Это, правда, не решает проблему с "_top".
Да, это уже лучше. Но как быть с JavaScript-ом?
Я временно остановился на простом переписывании FireBird-а под свои нужды.