Страницы: 1
Параметр доступен как
Наверное текст без пробелов?
С пробелами у меня работает.
Попробуй что-нибудь типа:
<textbox maxlength="2000" style="width: 40em; max-width: 40em; min-width: 10em;" multiline="true" cols="40" rows="2"/>
Здравствуйте, помогите с проблемкой.
Создаю XPI и добавляю расширение.
Вот в таком виде (выдержки)
Директории: nakedxulapp\chrome\skin\classic\nakedxulapp chrome.manifest: ... skin nakedxulapp classic/1.0 jar:chrome/nakedxulapp.jar!/skin/classic/nakedxulapp/ ... mainWindow.xul: ... <?xml-stylesheet href="chrome://nakedxulapp/skin/mainWindow.css" type="text/css"?> ... nakedxulapp\chrome\skin\classic\nakedxulapp\mainWindow.css: ... #itr-tbbCreate, #itr-cmCreate { list-style-image: url("chrome://nakedxulapp/skin/itr-create.gif"); } ...
работает.
Хочу в ветке skin создать поддиректорию, например:
nakedxulapp\chrome\skin\classic\nakedxulapp\mainwindow
Переместил туда файлы, исправил пути
<?xml-stylesheet href="chrome://nakedxulapp/skin/mainwindow/mainWindow.css" type="text/css"?> #itr-tbbCreate, #itr-cmCreate { list-style-image: url("chrome://nakedxulapp/skin/mainwindow/itr-create.gif"); }
переустановил расширение. Не работает.
Поискал примеры - не наш
Все дело в функции makeRecordRows.
Видимо построение объекта XML в коротком цикле "захлебывается" и приводит к переполнению какого-то внутреннего буфера. Лечится заменой на сборку просто строки. Ну и DOMParser лучше вставить внутрь appendChild.
Вот такой немудреный код приводит к краху Fx, если понажимать кнопку.
Загрузка страницы через http.
Может что-то можно "подкрутить"?
[code]<?xml version="1.0" encoding="Windows-1251"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://global/locale/config.dtd">
<window id="main" align="left" valign="top"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="recordListBox = document.getElementById('recordList');"
>
<script type="text/javascript; e4x=1">
<![CDATA[
XML.prettyPrinting = false;
var recordListBox, xmlsrc;
var req = new XMLHttpRequest();
function loadRecords() {
if (recordListBox.hasChildNodes()) {recordListBox.removeChild(recordListBox.childNodes[0]);}
req.open("GET", "records.xml", false);
req.overrideMimeType('text/xml; charset=windows-1251');
req.send(null);
if(req.status != 200) {alert('Error loading xml file \n'); return;}
xmlsrc = new XML(req.responseText);
Здравствуйте, Anton.
Пример <listbox> я, не долго думая, взял из elemref. Чисто для пробы. Вставил его "как есть" и, его же, через скрипт. Через скрипт, как я уже говорил, на экране появилась некая белиберда. Затем, по вашему совету, добавил <listrows>. Перед этим посмотрел в elemref, убедился, что не слепой (его там нет), посмотрел DOM, убедился, что он есть. И вот он, родной listbox, на экране. Правда на мышку и курсор не реагирует, в отличие от своего "близнеца".
Соорудил более развернутую конструкцию (последний пример) + <listrows>. Пробовал в различных комбинациях, которые приводили либо к ошибкам, либо вышибали Firefox. Попробовал сплошную строку тегов (еще раз спасибо за совет) - работает. Поиски средств подавления #text привели к XML.prettyPrinting = false;.
Voilà!
З.Ы.
Вам лично могу послать материалы по e4x, которые я собрал, если интересно.
Добавление <listrows> решает проблему визуализации, но в результате получается что-то похожее на listbox, но не listbox. Все-таки мешали узлы #text. Вылечилось добавлением оператора
XML.prettyPrinting = false;
Ниже работающий вариант, кому интересно.
[code]<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
style="overflow: auto;" align="left" valign="top"
>
<script type="text/javascript; e4x=1">
<![CDATA[
function testParser() {
//XML.ignoreWhitespace = true;
XML.prettyPrinting = false;
var b1 = document.getElementById('b1');
var b2 = document.getElementById('b2');
var fragment1 =
<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="fragment1"/>
</box>;
b1.appendChild((new DOMParser()).parseFromString(fragment1.toXMLString(), 'text/xml').documentElement);
var fragment2 =
<box xmlns="http://www.mozilla.org/
Anton, спасибо за развернутый ответ!
Я пытаюсь использовать расширение e4x, добавленное в javascript, начиная с версии Firefox 1.5.
Конструкции вида var v = <tag>; работают и сильно сокращают и упрощают исходный код.
Обнаружил неработоспособность пока только тега <listbox>, который "почти collapsed".
Кстати, проблем с fragment1 как раз нет.
Может кто-нибудь встречался с неправильной обработкой <listbox> ?
Исходный текст:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
style="overflow: auto;" align="left" valign="top"
>
<script type="text/javascript; e4x=1">
<![CDATA[
function testParser() {
var b1 = document.getElementById('b1');
var b2 = document.getElementById('b2');
var fragment1 =
<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="fragment1"/>
</box>;
b1.appendChild((new DOMParser()).parseFromString(fragment1.toXMLString(), 'text/xml').documentElement);
var fragment2 =
<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<listbox id="theList2">
<listitem label="Ruby"/>
<listitem label="Emerald"/>
<listitem label="Sapphire"/>
<listitem label="Diamond"/>
</listbox>
Страницы: 1