Страницы: 1
Добрый день.
Извиняюсь может и был такой вопрос но писк не дал результатов.
Я ради получения опыта делаю аналог Speed Dial.
Возник вопрос как он вставляет свою xul при создании нового таба? Перерыл документацию на сайте developer.mozilla.org нечего подобного не нашел.
Если вопрос глупы. Можно ткнуть носом в документацию. Заранее спасибо.
Отсутствует
прямых ручек нет, встраиваться приходится разными хаками.
когда юзер хочет открыть новый таб вызывается window.BrowserOpenTab - его можно перегрузить и вместо пустого таба открыть свой.
Отсутствует
Ход работает но при такой загрузки xul в адресной строке видно chrome://ext/content/newtab.xul.
Нашел способ как убрать данный косяк. newtab.linkedBrowser.userTypedValue = ""
Но в этом случае если в этом табе перейти на какую нибудь страницу. А после вернуться назад по кнопке back. В адресной строке опять появляться url chrome://ext/content/newtab.xul и убрать его не получается. Уже перерыл все исходники Speed Dial. Но не понимаю как там это реализовано. Может у кого нибудь есть идеи?
Заранее Спасибо
Отсутствует
Выдает ошибку:
Ошибка: gURLBar is not defined
Строка: 355
Содержимое строки: gURLBar.select();
Сейчас постараюсь сделать пример.
Отредактировано kirill09 (04-11-2011 16:11:02)
Отсутствует
kirill09
gURLBar есть только в контексте главного окна FF. Если приведенный выше код выполняется в другом окне, то в нем этого gURLBar нет.
Отсутствует
Как и обещал пример
http://itstorage.ru/newapp.zip
Код упрощен до минимума.
Суть проблемы таже. Открываем вторую вкладку вылезет моя xul в адресной строке пусто переходит на какой нибудь сайта. Нажимаем кнопку назад в адресной строке. Путь к xul:(((
Отсутствует
kirill09
Ээмм... вас направили по несколько неправильному пути. Все делается намного проще: при старте браузера нужно в контексте главного окна выполнить
- и всё.
Отредактировано hydrolizer (04-11-2011 23:03:59)
Отсутствует
kirill09
Моя предыдущая реплика относилась только к скрытию URL в строке адреса.
Отсутствует
Понял но не работает.
http://itstorage.ru/newapp.zip вот пример я его уже по разному перекрутил. Но url после возврата хоть как появляется((((((
Отредактировано kirill09 (04-11-2011 23:33:15)
Отсутствует
Понял но не работает.
http://itstorage.ru/newapp.zip вот пример я его уже по разному перекрутил.
Ну еще бы - в архиве по ссылке в коде нигде не упоминается этот gInitialPages.
Вот подправленное мною ваше расширение: http://dl.dropbox.com/u/14131025/newapp.xpi - всё работает. Правки в основном заключались в удалении всей вышеприведенной очистки urlbar через ивенты. Поскольку ивенты для задачи скрытия URL в адресной строке не нужны. Вообще.
Отсутствует
Присоединяюсь к вопросу, но только интересует добавление своего xul-а на вкладку в отдельном окне(отдельно приложение, запускаемое при помощи xulrunner-а), а не в браузере. Т.е как добавить свой xul на вкладку или открыть его в отдельном окне(не браузера)?
Отсутствует
xterro
У вас xul создается динамически?
Отсутствует
xterro
У вас xul создается динамически?
В смысле? Задача такая: есть некоторое окно с вкладками и списком(деревом), пользователь кликает по элементы списка и в tabs добавляется вкладка с моим xul, который берётся из файла(по крайней мере я так предполагаю делать, т.е наготовить всех необходимых "форм" и открывать их во вкладке или отдельном окне, если в отдельном окне, то скажем, пользователь кликает правой кнопкой мыши по элементу списка и выбирает - ОТкрыть в новом окне, тогда создаётся новое окно и в него загружается мой xul файл), потому как зашивать в JS код описание xul формы, думаю не есть гуд. Как то так... я думаю.
Отсутствует
xterro
В смысле, если у вас уже есть готовые xul в виде файла, то в чем проблема? Открывать в новом окне - вообще просто:
window.openDialog("chrome://myextension/content/my-some-file.xul", "_blank", "chrome,dialog,modal,resizable,centerscreen");
в новой вкладке - через размещение в новой вкладке iframe, и задание для него contentDocument.location, указывающий на ваш xul (tabbrowser в расширениях использовать нельзя, он только для главного окна).
Отсутствует
xterro
В смысле, если у вас уже есть готовые xul в виде файла, то в чем проблема? Открывать в новом окне - вообще просто:Выделить кодКод:
window.openDialog("chrome://myextension/content/my-some-file.xul", "_blank", "chrome,dialog,modal,resizable,centerscreen");в новой вкладке - через размещение в новой вкладке iframe, и задание для него contentDocument.location, указывающий на ваш xul (tabbrowser в расширениях использовать нельзя, он только для главного окна).
Я так понимаю это в контексте расширения? А если я делаю отдельное приложение, то методы те же самые(openDialog, iframe и contentDocument)? Ещё такой момент, если я использую xulrunner, сделал структуру каталогов как указано в докуметации, могу ли я при указании пути использовать префикс chrome://, как он используется?
Отредактировано xterro (06-11-2011 15:24:15)
Отсутствует
Я так понимаю это в контексте расширения? А если я делаю отдельное приложение, то методы те же самые(openDialog, iframe и contentDocument)?
могу ли я при указании пути использовать префикс chrome://
Насколько я знаю, да. В документации на MDN обычно специально оговаривается, если та или иная функциональность имеет специфику конкретного приложения (например, может использоваться только в FF/TB/SM etc.). Ни за чем из вышеперечисленного я таких оговорок в документации не припоминаю.
Да и кроме того, "практика - критерий истины". Попробуйте.
Отсутствует
Страницы: 1