Пытаюсь написать маааленькое расширение. Пока не добавлял локализаций - всё работало.
А теперь выдаёт

Выделить код

Код:

<menupopup id="menu_ToolsPopup"><menuitem label="&gotoexploder.label;"  oncommand="go_to();"/> </menupopup>
<window id="main-window">

Не могу найти, где напортачил
gotoexploder.xpi:
              install.rdf
              chrome/exploder.jar
              content:
                         contents.rdf
                         exploderoverlay.xul
              locale:
                      en-US:
                               contents.rdf
                               exploder.dtd
                      ru-RU:
                               contents.rdf
                               exploder.dtd

install.rdf

Выделить код

Код:

<?xml version="1.0"?>

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">

	<Description about="urn:mozilla:install-manifest">
		<em:id>{D019567A-EC75-4dff-9823-BFC716B06119}</em:id>
		<em:name>GotoExploder</em:name>
		<em:version>0.1</em:version>
		<em:description>Transformed webpage by Internet Exploder</em:description>
		<em:creator>Zorin</em:creator>
		<em:homepageURL></em:homepageURL>
		<em:updateURL></em:updateURL>
		<em:file>
			<Description about="urn:mozilla:extension:file:exploder.jar">
				<em:package>content/</em:package>
				<em:locale>locale/en-US/</em:locale>
				<em:locale>locale/ru-RU/</em:locale>
			</Description>
		</em:file>

		<em:targetApplication>
			<Description>
				<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
				<em:minVersion>0.9</em:minVersion>
				<em:maxVersion>1.10</em:maxVersion>
			</Description>
		</em:targetApplication>
	</Description>

</RDF>

content
contents.rdf

Выделить код

Код:

<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:chrome="http://www.mozilla.org/rdf/chrome#">

  <RDF:Seq about="urn:mozilla:package:root">
    <RDF:li resource="urn:mozilla:package:exploder"/>
  </RDF:Seq>

  <RDF:Description about="urn:mozilla:package:exploder"
        chrome:displayName="Exploder"
	chrome:author="Zorin"
	chrome:authorURL="http://exploder.mozdev.org/"
        chrome:name="exploder"
        chrome:extension="true"
        chrome:description="Transformed webpage by Internet Exploder"
        >
  </RDF:Description>

  <RDF:Seq about="urn:mozilla:overlays">
    <RDF:li resource="chrome://browser/content/browser.xul"/>
  </RDF:Seq>

  <RDF:Seq about="chrome://browser/content/browser.xul">
    <RDF:li>chrome://exploder/content/exploderOverlay.xul</RDF:li>
  </RDF:Seq>
</RDF:RDF>

exploderoverlay.xul

Выделить код

Код:

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> 
<!DOCTYPE window SYSTEM "chrome://exploder/locale/exploder.dtd" >


<overlay id="exploderOverlay"
    	 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     	 xmlns:nc="http://home.netscape.com/NC-rdf#"
     	 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

 
<menupopup id="menu_ToolsPopup"><menuitem label="&gotoexploder.label;"  oncommand="go_to();"/> </menupopup>
<window id="main-window"> 
 
  <script type="application/x-javascript"> 
  <![CDATA[

  function go_to() {
     var url = getBrowser (). contentDocument. location. href;
window.open("http://test.kp.ru/cgi-bin/slovari/BBB.pl?url="+url);
  }

  ]]>
  </script>

</window>	

</overlay>

locale/ru-RU
contents.rdf

Выделить код

Код:

<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:chrome="http://www.mozilla.org/rdf/chrome#">

    <RDF:Seq about="urn:mozilla:locale:root">
        <RDF:li resource="urn:mozilla:locale:ru-RU"/>
    </RDF:Seq>

    <RDF:Description about="urn:mozilla:locale:ru-RU" chrome:name="ru-RU">
        <chrome:packages>
            <RDF:Seq about="urn:mozilla:locale:ru-RU:packages">
                <RDF:li resource="urn:mozilla:locale:ru-RU:exploder"/>
            </RDF:Seq>
        </chrome:packages>
    </RDF:Description>
</RDF:RDF>

exploder.dtd

Выделить код

Код:

<!ENTITY gotoexploder.label "Пофигячить Интернет Эксплодером. ">

locale/en-US - аналогично

Полдня просидел, увы...

iron-zorin
Вы бы лучше выложили расширение в виде xpi файла.
Чтобы что-то понять, надо потестировать, а собирать его из приведённых здесь кусков как-то.....

en-US:
                               contens.rdf
                               exploder.dtd
                      ru-RU:
                               contens.rdf
                               exploder.dtd

Я так понимаю должно быть contents.rdf, а не contens.rdf?

Unghost
Спасибо за отклик

Вы бы лучше выложили расширение в виде xpi файла.

Я бы с радостью - куда?

Я так понимаю должно быть contents.rdf, а не contens.rdf?

Там так и есть - очепятка

iron-zorin

Я бы с радостью - куда?

http://forum.mozilla.ru/uploads.php

Отправил

iron-zorin пишет

Отправил

А ссылку ? :)

http://forum.mozilla.ru/uploaded/GotoExploder.xpi

<!DOCTYPE window SYSTEM "chrome://exploder/locale/exploder.dtd" >

а файл называется Exploder.dtd. Несовпадение регистра, в общем.

iron-zorin
Переделал, в общем работает - ftp://ftp.mozilla.ru/crew/Unghost/GotoExploder2.xpi
Ошибки:
1) install.rdf

<em:locale>locale/en-US/</em:locale>
                <em:locale>locale/ru-RU/</em:locale>

Так локали регистрировать нехорошо. Надо

<em:locale>locale/en-US/exploder/</em:locale>
                <em:locale>locale/ru-RU/exploder/</em:locale>

И каталоги соответственно переделать
2) exploderoverlay.xul
<!DOCTYPE window SYSTEM "chrome://exploder/locale/exploder.dtd" >

Лишний пробел в конце

<menuitem label="&gotoexploder.label;"

В файле который ты выложил, было просто gotoexploder.label;
& не забывать.

3) exploder.dtd
Самая главная засада. Их кодировка у тебя была - Unicode BE BOM
Надо использовать только UTF-8!

<!ENTITY gotoexploder.label "Пофигячить Интернет Эксплодером. ">

Это конечно не мое дело, но для пунктов меню точки в конце обычно не ставят.
Или ничего не ставят, или троеточие (если пункт предполагает дальнейшие действия пользователя)

Unghost

Переделал, в общем работает - ftp://ftp.mozilla.ru/crew/Unghost/GotoExploder2.xpi

А у меня выдаёт

Ошибка регистрации Chrome для расширения '{D019567A-EC75-4dff-9823-BFC716B06119}' при вызове nsIXULChromeRegistry::installPackage с путем chrome: jar:file:///C:/Documents%20and%20Settings/01/Application%20Data/Mozilla/Firefox/Profiles/default.rjd/extensions/%7BD019567A-EC75-4dff-9823-BFC716B06119%7D/chrome/exploder.jar!/content/ (расширение в профиле = true). Вероятно данный путь не существует в файле chrome JAR, или содержимое файла contents.rdf находящегося в данном месте повреждено?

iron-zorin
Черт, забыл что у некоторых еще стоит 1.0.x :)
Исправил, скачай и попробуй снова.

Unghost
http://forum.mozilla.ru/uploaded/GotoExploder-0.2.xpi
Пробую добавить контекстное меню и иконки - результат так-себе
Не могу понять, как обрабатываются вложенные папки, где надо в путях указывать, а где нет
.