![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Доброе время суток.
Необходимо сделать трансформацию в ЙС следующим путем: 1. Загрузить ХМЛ документ 2. Загрузить ХСЛ документ 3. Сделать трансформацию 4. Закинуть результат в элемент DIV. Дело в том, что код для IE работает, а для Firefox-а нет! Поэтому привожу вашему вниманию код для Firefox-а:
Мозила ругается на строку 33 Почему не получается сделать трансформацию? Что я делаю не так? Пожалуйста помогите! |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
?? |
|||
|
||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Amphiluke, я проделал следующую вещь:
уже в первой строке вылетает и ругается срашным матом. |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Нет возможности проверить, что там за ругань, но на первый взгляд хз, где спрятался баг. Вы смотрели консоль? Али там невнятно написано (что, правда мат?
Только все же почему вы присваиваете результат, возвращаемый методом transformToFragment свойству innerHTML? Это же, вообще говоря, разные вещи. innerHTML имеет строковый тип, а transformToFragment возвращает объект DocumentFragment. Поэтому нужно (вроде как) пользоваться методами типа appendChild, а не пихать результат в innerHTML. Впрочем, проверьте, я могу ошибаться. Добавлено через 11 минут и 20 секунд И еще немного неясен смысл этих манипуляций:
создали XML-документ и тут же забыли про него, перезаписав переменную. Зачем создавали? |
||||
|
|||||
| t77 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Ну вообщето мне необходимо результат трансформации закинуть в мой Div. Дело в том, что именно так делается для браузера Internet Explorer. Представте себе там это работает!
Объект - stepObj я получаю как параметр из функции- XSLTTransformation. А про него не забыли! Как раз в той строке, где пытаюсь сделать трансформацию, именно этот объект я передаю. |
||||
|
|||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: нет Всего: 31 |
В свое время испытал много проблем с XSLT в браузерах.. Кривая это технология.
Что бы хоть как - то уменьшить проблем с переносимостью, советую использовать какую-либо JS обертку, например Sarissa Это сообщение отредактировал(а) sir_nuf_nuf - 15.7.2010, 09:38 |
|||
|
||||
| Amphiluke |
|
||||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
В первом посте вы сами заявили: говорим о FF. Сейчас проверил еще раз: да, здесь нельзя использовать innerHTML, как в IE, а нужно добавлять содержимое методами insertBefore, appendChild или подобными. Если вы присвоете результат, возвращенный методом transformToFragment, свойству innerHTML, то и получите в своем div'е одну строку: [object DocumentFragment].
Ну да, как же. Я говорю, что бессмысленно было писать эту строку:
если в следующей строке вы просто-напросто перезаписываете заново переменную xmldoc, забывая результат, возвращенный методом createDocument. |
||||||||
|
|||||||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Мозги закипают
Привожу вашему вниманию два варианта одного и того же кода. Первый для ИЕ а второй для Firefox. Где первый вариант работает а второй вариант, тот, что для Firefox-а нет!
Помогите мне пожалуйста сделать то же самое, чтобы работало и в Firefox. Не хочет работать! Как мне это сделать ? |
|||
|
||||
| Amphiluke |
|
||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Блин.
Вот пример, адаптированный из учебника для вашего кода. Я так и не добился от вас, что за ошибка вызывает «страшный мат» у FF. Поэтому проверьте просто, будет ли работать у вас хотя бы это. У меня работает! Если у вас — нет, то хз. myXSLFile.xsl
myXMLFile.xml
Главная (оставил только код для FF, раз с IE проблем нет)
Это сообщение отредактировал(а) Amphiluke - 15.7.2010, 12:30 |
||||||
|
|||||||
| t77 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
ваш код у меня работает с условием, что xml файл находится в отдельном файле. Тоесть создав три файла как вы здесь показываете все работает!!!
Но у меня в коде, в аппликации, где я получаю xml документ из объекта xslObj, не работает! Может я неправильно считываю xml из объекта?? Скажите пожалуйста как заменить строки:
для браузера Firefox ?? P.S. Даже не знаю, что и думать... А может быть, что для Файрфокса имеется другой синтакс ХСЛ ?? Добавлено через 10 минут и 57 секунд Что же касается ошибки, которую я получаю при трансформации:
|
||||
|
|||||
| Amphiluke |
|
||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну вы же сами, вроде, где-то в каких-то темах недавних уже писали это.
Что-то вот этого я не понял. Какие-то слова незнакомые. Так что-ль?
|
||||||
|
|||||||
| t77 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Нет, нет, никакого встроеного в HTML-страницу xml-а нет. Объект stepObj.xml ,является XML документом, с помощью которго проделывается трансформация.
Нет, не работает все равно. Получаю то же самое исключение, что и раньше
|
||||||
|
|||||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
||||
|
||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Amphiluke, да действительно он передается функции XSLTTransformation как параметр. Данную функцию заряжает объектом stepObj, другая функция и так далее. Тот же объект как вы видите из вышеприведенного мною примера используется в коде для IE. И без каких либо проблем проделовается трансформация и все красиво работает. Исходя из этого не думаю, что проблема в данном объекте. Проверяю содержание объекта в обоих случаях, и при запуске кода в ИЕ и при запуске ФФ. Содержание и структура объекта stepObj идентичны. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
t77, если не сложно, выполните, please, перед вызовом метода transformToFragment этот alert:
и покажите здесь, что написалось. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |