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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

Разработка » [?] Парсинг HTML entity » 08-03-2009 17:05:59

Подскажите как наиболее правильно и без создания тяжеловесных XPCOM компонентов распарсить HTML entity из XPCOM JavaScript компонента?
Надо распарсить всякие последовательности вида & #9829; &.

Раньше когда весь код работал на уровне отдельно окна, то я создавал через document.createElement новый iframe и запиcывал в него всю строку, потом вручную заменял оставшиеся 4 последовательности < >   & и всё было хорошо, но в XPCOM нету объекта document.

Есть идея через nsIWindowMediator получать любое окно и всё делать уже через window.document, но нет уверенности что у любого окна будет document. Т.е. основное окно Firefox может быть уже закрыто, а останется маленькое окошко открытое каким-нибудь расширением.

Разработка » регистрация XPCOM » 28-02-2009 16:49:39

nsISecurityCheckedComponent нужен в том случае, если мы хотим вызывать методы этого компонента из непривилегированного кода. К задаче получения указателя на компонент этот интерфейс никак не относится.

Разработка » [?] Использование собственных DTD в HTML » 22-02-2009 17:16:47

Вот только ни один браузер не понимает такого объявления (Firefox 3, Chrome, Opera 9.21, IE 6, Safari).
Можно полностью рабочий пример?

Разработка » [?] Использование собственных DTD в HTML » 22-02-2009 00:21:47

Можешь привести пример который будет работать не из расширения, а лежать как отельный файл на диске, и не будет использовать chrome:// ссылки? А то у меня пока не получается...

Разработка » [?] Использование собственных DTD в HTML » 21-02-2009 19:35:12

Как известно XUL файлы можно локализовывать с помощью DTD (https://developer.mozilla.org/en/XUL_Tu … calization).
А можно ли сделать тоже самое с HTML?
Т.е. например так:
index.html

Выделить код

Код:

<!DOCTYPE html SYSTEM "main.dtd">
<html>
<head>
    <title>&my_main_page;</title>
</head>
<body>
&my_welcome_message;
</body>
</html>

main.dtd

Выделить код

Код:

<!ENTITY my_main_page "Main page">
<!ENTITY my_welcome_message "Hello all!!!">

Обсуждение расширений » VKontakte Toolbar (расширение Firefox для В Контакте) » 08-10-2008 11:28:52

Ок, теперь я доволен :)

Очень прошу - добавьте возможность вида боковой панели вместо бара - как это сделано у Flock браузера.

Посмотрю что можно сделать в данном направлении.

Обсуждение расширений » VKontakte Toolbar (расширение Firefox для В Контакте) » 07-10-2008 03:22:28

Не знаю как принято здесь на форуме, но меня лично, как создателя тулбара для сайта Вконтакте, не радует когда появляется информация не соответствующая действительности и касающаяся тулбара!

А именно, по вышеобозначенной ссылке http://forum.mozilla-russia.org/viewtop … 49#p261549 присутствует строчка

Перевод на русский язык: Sergeys

которая никак не соответсвует действительности.

Firefox » [?] Увеличение размера шрифта » 15-09-2008 23:42:44

Здравствуйте.

Когда я с помощью Ctrl-+ увеличиваю размер шрифта в Firefox 3.0.1, то в остальных вкладках с этого сайта шрифт тоже увеличивается. В Firefox 2 такого не было. Существует ли способ вернуть былое поведение Firefox'у, т.е. чтобы при увеличении шрифта в одной вкладке, в других всё оставалось неизменным?

Разработка » Создание элемента управления с нуля!! » 25-07-2008 01:17:58

Что именно должен отображать этот объект? Возможно здесь совсем не нужен XPCOM...

Разработка » Кто поможет с xpcom? » 17-07-2008 19:29:53

Либо действительно сделать js-функцию с получением переменной и вызывать ее из сей? Так-то можно?

Можно. Точнее сделать компоненту на JavaScript и вызывать её из C++.

А можно ли в си-мотоде xpcom-а узнать откуда его позвали? Ну хотябы из какого js-файла...

Наверное... http://www.mozilla.org/scriptable/javascript-stack-dumper.html

Разработка » Кто поможет с xpcom? » 17-07-2008 16:59:10

Это самый простой способ. Т.к. насколько мне известно нативный код из Flash и обратно можно вызывать, только через JavaScript.
А почему не пойдёт?
В требованиях сказано чтобы ни строчки JavaScript'ового кода не было? Основная работа всё равно останется на сях...
Напоследок... В большинстве случаев если объект получается через wrappedJSObject то он преимущественно будет нормально работать только в JavaScript.

Разработка » [?] Client Version Registry » 17-07-2008 00:56:48

В расширениях в установочном скрипте install.js используется глобальный объект Install. В описаниях методов этого объекта натыкаюсь на слова "Client Version Registry". Возникает вопрос, где этот реестр расположен и как его посмотреть в удобном для человека виде?

Разработка » Кто поможет с xpcom? » 13-07-2008 13:29:58

Если этот GetVariable вызывается нормально только из JavaScript, то можно сделать обёртку для него. Создать интерфейс для XPCOM компонента, реализовать его на JavaScript и оттуда вызвать функцию GetVariable, а уже из плюсов вызывать обычным способом функцию из этого XPCOM компонента.

Разработка » Взаимодействие web-страницы и расширения » 13-07-2008 13:20:08

Можно в расширении в конец navigator.userAgent добавить какую-нибудь строку как это делают некоторые расширения, например WebMoney Advisor.
Можно на С++ с помощью функции JS_SetProperty движка SpiderMonkey добавить в глобальный объект (window) своё поле или функцию.

Разработка » непонятная работа onreadystatechange » 28-06-2008 02:06:26

Нужно опираться на более строгие описания, а не на статьи поясняющие общие принципы.
http://developer.mozilla.org/en/docs/ns … ttpRequest

You must call open() on the XMLHttpRequest before setting any event listeners on it.

Разработка » непонятная работа onreadystatechange » 28-06-2008 01:20:17

Интересно как это вообще работало!?!
Все свойства и методы XMLHttpRequest должны вызываться между open и send.

Разработка » Опять иконки в меню... » 28-03-2008 01:49:30

Странно... У меня второй вариант работает.
Попробуй сначала путь к какой-нибудь стандартной иконке. Пример:

Выделить код

Код:

<menuitem class="menuitem-iconic" image="chrome://global/skin/icons/folder-item.png" label="123"/>

Разработка » [?] Взамодействие сайта с расширением » 27-03-2008 21:27:32

Нужно сделать расширение для Firefox которое предоставляло бы сайту дополнительные специфические функции.
Имеется ввиду следующее:

В расширении:

Выделить код

Код:

function Init()
{
	window.my_component = Components.classes[ "@my_component;1" ]
		.getService( Components.interfaces.IMyComponent );
	window.my_info = my_info_object;
}

window.addEventListener( "load", Init, false );

На сайте:

Выделить код

Код:

function GetLowLevelInfo()
{
	return my_component.GetInfo();
}
function GetHighLevelInfo()
{
	return my_info.GetInfo();
}

Имеется ввиду что сайту объекты my_component и my_info предоставляются расширением.

В том варианте который я привёл эти 2 объекта не видны с сайта, а только из расширений.

Вопрос! Как сделать эти объекты доступными с сайта без необходимости сайту запрашивать дополнительные привилегии через PrivilegeManager или как бы то ни было ещё ???

Разработка » Как убрать не мой тултип? » 26-12-2007 17:20:01

В твоём случае нужен только onmousemove, но oncommand и onclick тоже лучше поставить чтобы исключить подобные проблемы.
А вообще смотри http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-flow

Выделить код

Код:

<toolbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<toolbar>
		<toolbarbutton label="Button" type="menu-button" tooltiptext="Only on button">
			<menupopup
						oncommand="event.stopPropagation();"
						onclick="event.stopPropagation();"
						onmousemove="event.stopPropagation();">
				<menuitem label="1" />
				<menuitem label="2" />
				<menuitem label="3" />
			</menupopup>
		</toolbarbutton>
	</toolbar>
</toolbox>

Разработка » [?] prefwindow.buttons » 20-10-2007 19:27:16

У меня такой вопрос, хочу использовать в своём расширении настройки, задаю у окна 3 кнопки OK (Синхронизировать настройки, выполнить функцию func1() и закрыть окно), Apply (Синхронизировать настройки, выполнить функцию func2() и не закрывать окно) и Cancel (Не синхронизировать настройки и не вызывать ни func1(), ни func2())... Под Windows всё работает именно так как я и описал, но вот под Linux из нужных мне кнопок отображается только Apply, и ещё появляется ненужная кнопка Close, которая вызывает синхронизацию настроек и закрывает окно, но не вызывает ни одной из нужных мне функций, т.е. нарушается логика в сохранении настроек, т.к. некоторые настройки требую предварительной обработки перед сохранением...
Может кто-нибудь сталкивался с подобной проблемой или есть идеи по тому как мне убрать кнопку Close и вернуть OK и Cancel ?
[code]<prefwindow
buttons="accept,extra1,cancel"
buttonlabelaccept="OK"
buttonlabelextra1="Apply"
buttonlabelcancel="Cancel"
ondialogaccept="return func1();"
on

Разработка » [?] Перекодировка в Windows-1251 » 01-10-2007 09:41:03

Спасибо! Всё получилось, всё работает!

Разработка » [?] Перекодировка в Windows-1251 » 28-09-2007 19:42:06

Ну а вообще, как перевести из юникода в Windows-1251 ?

Разработка » [?] Перекодировка в Windows-1251 » 20-09-2007 11:19:52

Ну само собой приведёт, но он ожидает увидеть только кодировку Windows-1251 и следовательно каждая последовательность %NN приведётся к одной какой-то букве, а если ему передаётся юникодный символ, а у юникода 2 байта на букву, то одна буква передастся на сервер в виде %NN%MM, а сервер будет интерпретировать эту последовательность не как один символ, а как два, и в итоге получаются каракули...

Board footer

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