Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№112-08-2011 19:46:36

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 14.0

Как загрузить свой xul при создании нового tabs?

Добрый день.
Извиняюсь может и был такой вопрос но писк не дал результатов.
Я ради получения опыта делаю аналог Speed Dial.
Возник вопрос как он вставляет свою xul при создании нового таба? Перерыл документацию на сайте developer.mozilla.org нечего подобного не нашел.
Если вопрос глупы. Можно ткнуть носом в документацию. Заранее спасибо.

Отсутствует

 

№201-10-2011 17:35:25

tenshi
Участник
 
Группа: Members
Зарегистрирован: 30-03-2008
Сообщений: 47
UA: Chrome 13.0

Re: Как загрузить свой xul при создании нового tabs?

прямых ручек нет, встраиваться приходится разными хаками.
когда юзер хочет открыть новый таб вызывается window.BrowserOpenTab - его можно перегрузить и вместо пустого таба открыть свой.

Отсутствует

 

№301-10-2011 17:37:01

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Так и сделал. Думал есть более правильный способ. Спасибо за ответ.

Отсутствует

 

№403-11-2011 20:09:25

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 15.0

Re: Как загрузить свой xul при создании нового tabs?

Ход работает но при такой загрузки xul в адресной строке видно chrome://ext/content/newtab.xul.
Нашел способ как убрать данный косяк. newtab.linkedBrowser.userTypedValue = ""
Но в этом случае если в этом табе перейти на какую нибудь страницу. А после вернуться назад по кнопке back. В адресной строке опять появляться url chrome://ext/content/newtab.xul и убрать его не получается. Уже перерыл все исходники Speed Dial. Но не понимаю как там это реализовано. Может у кого нибудь есть идеи?
Заранее Спасибо

Отсутствует

 

№503-11-2011 22:34:44

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Не совсем понятно чему равно gURLBar??
В коде который выше в условие
if (newtabhomepage.prefs.getBoolPref("newtabhomepage.selectnewtab"))
не заходит.

Отсутствует

 

№604-11-2011 15:55:38

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Выдает ошибку:

Ошибка: gURLBar is not defined
Строка: 355

Содержимое строки: gURLBar.select();

Сейчас постараюсь сделать пример.

Отредактировано kirill09 (04-11-2011 16:11:02)

Отсутствует

 

№704-11-2011 16:28:40

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

kirill09
gURLBar есть только в контексте главного окна FF. Если приведенный выше код выполняется в другом окне, то в нем этого gURLBar нет.

Отсутствует

 

№804-11-2011 21:53:00

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Как и обещал пример
http://itstorage.ru/newapp.zip
Код упрощен до минимума.
Суть проблемы таже. Открываем вторую вкладку вылезет моя xul в адресной строке пусто переходит на какой нибудь сайта. Нажимаем кнопку назад в адресной строке. Путь к xul:(((

Отсутствует

 

№904-11-2011 22:59:05

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

kirill09
Ээмм... вас направили по несколько неправильному пути. Все делается намного проще: при старте браузера нужно в контексте главного окна выполнить

Выделить код

Код:

gInitialPages.push("chrome://myextension/content/mywindow.xul")

- и всё.

Отредактировано hydrolizer (04-11-2011 23:03:59)

Отсутствует

 

№1004-11-2011 23:10:04

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Не работает. Ошибок не выдает но xul не встает вместо пустой станицы

Отсутствует

 

№1104-11-2011 23:25:02

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

kirill09
Моя предыдущая реплика относилась только к скрытию URL в строке адреса.

Отсутствует

 

№1204-11-2011 23:31:55

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 16.0

Re: Как загрузить свой xul при создании нового tabs?

Понял но не работает.
http://itstorage.ru/newapp.zip вот пример я его уже по разному перекрутил. Но url после возврата хоть как появляется:(((((((

Отредактировано kirill09 (04-11-2011 23:33:15)

Отсутствует

 

№1305-11-2011 05:03:50

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

kirill09 пишет

Понял но не работает.
http://itstorage.ru/newapp.zip вот пример я его уже по разному перекрутил.

Ну еще бы - в архиве по ссылке в коде нигде не упоминается этот gInitialPages.
Вот подправленное мною ваше расширение: http://dl.dropbox.com/u/14131025/newapp.xpi - всё работает. Правки в основном заключались в удалении всей вышеприведенной очистки urlbar через ивенты. Поскольку ивенты для задачи скрытия URL в адресной строке не нужны. Вообще.

Отсутствует

 

№1405-11-2011 19:34:12

kirill09
Участник
 
Группа: Members
Зарегистрирован: 12-08-2011
Сообщений: 13
UA: Chrome 17.0

Re: Как загрузить свой xul при создании нового tabs?

Спасибо. Очень сильно помогли. Спасибо спасибо спасибо

Отсутствует

 

№1506-11-2011 12:14:06

xterro
Участник
 
Группа: Members
Зарегистрирован: 02-11-2011
Сообщений: 24
UA: Firefox 4.0

Re: Как загрузить свой xul при создании нового tabs?

Присоединяюсь к вопросу, но только интересует добавление своего xul-а на вкладку в отдельном окне(отдельно приложение, запускаемое при помощи xulrunner-а), а не в браузере. Т.е как добавить свой xul на вкладку или открыть его в отдельном окне(не браузера)? :)

Отсутствует

 

№1606-11-2011 12:20:40

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

xterro
У вас xul создается динамически?

Отсутствует

 

№1706-11-2011 12:34:01

xterro
Участник
 
Группа: Members
Зарегистрирован: 02-11-2011
Сообщений: 24
UA: Firefox 4.0

Re: Как загрузить свой xul при создании нового tabs?

hydrolizer пишет

xterro
У вас xul создается динамически?

В смысле? Задача такая: есть некоторое окно с вкладками и списком(деревом), пользователь кликает по элементы списка и в tabs добавляется вкладка с моим xul, который берётся из файла(по крайней мере я так предполагаю делать, т.е наготовить всех необходимых "форм" и открывать их во вкладке или отдельном окне, если в отдельном окне, то скажем, пользователь кликает правой кнопкой мыши по элементу списка и выбирает - ОТкрыть в новом окне, тогда создаётся новое окно и в него загружается мой xul файл), потому как зашивать в JS код описание xul формы, думаю не есть гуд. Как то так... я думаю.

Отсутствует

 

№1806-11-2011 13:13:34

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

xterro
В смысле, если у вас уже есть готовые xul в виде файла, то в чем проблема? Открывать в новом окне - вообще просто:

Выделить код

Код:

window.openDialog("chrome://myextension/content/my-some-file.xul",
    "_blank", "chrome,dialog,modal,resizable,centerscreen");

в новой вкладке - через размещение в новой вкладке iframe, и задание для него contentDocument.location, указывающий на ваш xul (tabbrowser в расширениях использовать нельзя, он только для главного окна).

Отсутствует

 

№1906-11-2011 15:07:44

xterro
Участник
 
Группа: Members
Зарегистрирован: 02-11-2011
Сообщений: 24
UA: Firefox 4.0

Re: Как загрузить свой xul при создании нового tabs?

hydrolizer пишет

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)

Отсутствует

 

№2006-11-2011 19:15:09

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Как загрузить свой xul при создании нового tabs?

xterro пишет

Я так понимаю это в контексте расширения? А если я делаю отдельное приложение, то методы те же самые(openDialog, iframe и contentDocument)?

xterro пишет

могу ли я при указании пути использовать префикс chrome://

Насколько я знаю, да. В документации на MDN обычно специально оговаривается, если та или иная функциональность имеет специфику конкретного приложения (например, может использоваться только в FF/TB/SM etc.). Ни за чем из вышеперечисленного я таких оговорок в документации не припоминаю.
Да и кроме того, "практика - критерий истины". Попробуйте.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]