Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка XSLTProcessor importStylesheet в FireFox, возникает при наличии # в адресе 
:(
    Опции темы
Greendrake
Дата 17.12.2007, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: нет
Всего: 6



Обнаружил весьма странное поведение XSLT-процессора в FireFox: оно зависит от наличия якоря (хеша) в адресной строке.

Если нижеприведённый файл просто открыть в FireFox, то скрипт покажет успешный результат преобразования. Но стоит добавить к файлу в адресной строке #foo и обновить — выскакивает exception. Это происходит даже в 3-й бета-версии. Можно ли как-то с этим бороться?

Код

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>FireFox XSL bug?</title>
        <script type="text/javascript" language="JavaScript">
            function getXmlDom(str) {
                var parser = new DOMParser();
                return parser.parseFromString(str, 'text/xml');
            };
            var xsl = '<?xml version="1.0" encoding="UTF-8"?>\
                        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">\
                        <xsl:output encoding="UTF-8" indent="yes" method="xml" />\
                        <xsl:template match="/"><foo/></xsl:template>\
                        </xsl:stylesheet>',
                processor = new XSLTProcessor(),
                result;
                
            try {
                processor.importStylesheet(getXmlDom(xsl));
                result = processor.transformToDocument(getXmlDom('<?xml version="1.0" encoding="UTF-8"?><bar/>'));
                alert(result + ' ... ' + result.documentElement + ' ... ' +  new XMLSerializer().serializeToString(result));
            } catch (e) {
                alert(e.message);
            };
        </script>
    </head>
    <body><a name="a">foo</a></body>
</html>


PM MAIL   Вверх
egao
Дата 17.12.2007, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.8.2007

Репутация: -1
Всего: нет



у меня никаких эксепшенов не возникает - он просто не идёт по ссылке..

ff3.0b1

Добавлено через 56 секунд
а если открыть в новой вкладке - возникает..
PM MAIL   Вверх
Greendrake
Дата 17.12.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: нет
Всего: 6



Цитата(egao @ 17.12.2007,  09:04)
у меня никаких эксепшенов не возникает - он просто не идёт по ссылке.. а если открыть в новой вкладке - возникает..

Я ж грю надо нажать обновить, а не просто добавить якорь и нажать ввод.

.....
Кстати, юнит-тест для библиотеки Sarissa так же не проходит в случае наличия якоря. Сравните: без якоря, с якорем.

Это сообщение отредактировал(а) Greendrake - 17.12.2007, 12:46
PM MAIL   Вверх
egao
Дата 17.12.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.8.2007

Репутация: -1
Всего: нет



да он полюбому не проходит smile
PM MAIL   Вверх
dstorm81
Дата 18.12.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



</xsl:stylesheet>',<===может нужна точкак с запятой ;
processor = new XSLTProcessor(), <===может нужна точкак с запятой ;
result;


поправил и в к-мелеоне все без проблем, ошибки не вылазят



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
Greendrake
Дата 18.12.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: нет
Всего: 6



Цитата

</xsl:stylesheet>',<===может нужна точкак с запятой ;
processor = new XSLTProcessor(), <===может нужна точкак с запятой ;
result;

Не нужна, это же объявление локальных переменных (как со значениями так и без) через запятую:
Код

var a, b = 2, c, d = 5;


Цитата

поправил и в к-мелеоне все без проблем, ошибки не вылазят

Что, с хешем в адресной строке не вылазят? Если да, то плиз версию к-мелеона и код в студию.

Это сообщение отредактировал(а) Greendrake - 18.12.2007, 18:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.