Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl преобразование на клиенте игнорирует CSS / 10 сообщений из 10, страница 1 из 1
24.05.2009, 21:00
    #36004236
jfm06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
Привет! Пожалуйста, помогите решить проблему.

Есть скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<HTML>
<HEAD>
  <TITLE>sample</TITLE>
  <SCRIPT language = "javascript">
     function init()
     {
	 
		var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
		var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
		var xslproc;
		xsldoc.async = false;
		xsldoc.load("sd_par.xsl");

		xslt.stylesheet = xsldoc.documentElement;
		var xmldoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
		xmldoc.async = false;
		xmldoc.load("sd.xml");

		xslproc = xslt.createProcessor();
		xslproc.input = xmldoc;
		xslproc.addParameter("ppp", "2");
		xslproc.transform();
		resTree.innerHTML = xslproc.output;
			  
     }
  </SCRIPT>
</HEAD>

<BODY onload = "init()" >
   <div id="resTree"></div>
</BODY>

</HTML>

в файле sd_par.xsl имеется упоминание про каскадную таблицу css:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" media-type="text/html; charset=windows-1251" encoding="windows-1251" indent="yes"/>
<xsl:param name="ppp"/>
	<xsl:template match="/">
		<html>
			<head>
				<title>Синхронизация</title>
				<link href="sd.css" rel="stylesheet" type="text/css" />
			</head>

Несмотря на это, выходной html документ не содержит стилевое оформление.

Примечательно, что аналогичного назначения скрипт выполняемый на сервере, работает корректно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<%@ LANGUAGE = VBScript %>
<%
  ' Загружаем входящий документ
  Dim source
  Set source = Server.CreateObject("MSXML2.FreeThreadedDOMDocument.4.0")
  source.load Server.MapPath("sd.xml")

  ' Загружаем преобразование
  Dim stylesheet
  Set stylesheet = Server.CreateObject("MSXML2.FreeThreadedDOMDocument.4.0")
  stylesheet.load Server.MapPath("sd_par.xsl")

  ' Создаём объект XSLTemplate для преобразования
  Dim templates
  Set templates = Server.CreateObject("MSXML2.XSLTemplate")
  templates.stylesheet = stylesheet.documentElement

  ' Создаём объект XSLT-процессора
  Dim processor
  Set processor = templates.createProcessor
  processor.input = source
  ' Присваиваем параметру id значение параметра запроса id
  processor.addParameter "ppp", "2"
  ' Выполняем преобразование
  processor.transform
  ' Возвращаем результат
  Response.Charset = "windows-1251"
  Response.Write processor.output
%>

В чем может быть дело?
...
Рейтинг: 0 / 0
24.05.2009, 22:47
    #36004318
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
jfm06В чем может быть дело?
В том, что CSS не стягивается с сервера. У вас CSS подключается из текущего каталога. При преобразовании на сервере - это серверный каталог, на клиенте - клиентский.

Либо положите на клиента CSS, либо пропишите полный URL к ней
...
Рейтинг: 0 / 0
25.05.2009, 06:02
    #36004476
jfm06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
_Vasilisk_,

В общем, набор файлов xml, xsl, css одинаков - полные комплекты есть и на клиенте и на сервере. Пример с сервером я привел, однако задача, в том, что заработало на клиенте (у клиента вообще может и не быть выхода в интернет).
...
Рейтинг: 0 / 0
25.05.2009, 22:26
    #36006674
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
Пропишите полный путь к CSS. Например
Код: plaintext
<link href="file:///C:/sd.css" rel="stylesheet" type="text/css" />
Положите в корень диска С CSS и убедитесь, что все работает. После этого посмотрите какой в браузере текущий каталог, содержимое window.location.href и т.д.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
26.05.2009, 08:52
    #36006958
jfm06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
_Vasilisk_,

Скопировал css в корень диска С, указал путь до css-файла в xsl, но все также, css не подхватывается.
Весьма и весьма странно...
...
Рейтинг: 0 / 0
27.05.2009, 01:42
    #36009373
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
Попробуйте просто сохранить полученный html на диск и открыть его в браузере с диска.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
27.05.2009, 19:45
    #36011773
Grundiss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
Воспользуйтесь дебаг-баром (debugBar)
(почему им? -- скрипт явно заточен под ИЕ, используются ActiveX-объекты)
Тода можно будет посмотреть: или не загружается файл и проблема с путями, или не внедряется в документ нода и надо смотреть в этом направлении.
Кстати -- вообще это крайне плохо, что в документ добавляется еще один head, корень зла может быть и в этом
Оффтоп: вы знаете, что ваш скрипт быдет работать только в ИЕ? Другие браузеры "не понимают" объекты Active-X
...
Рейтинг: 0 / 0
28.05.2009, 11:19
    #36012650
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
а ну да, ты же результат в текущий документ вставляешь, поэтому стили могут не подхватываться. Скрипты так точно не подхватываются. Тем более ты <html> и <head> вставляешь.
...
Рейтинг: 0 / 0
28.05.2009, 19:59
    #36014349
jfm06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
Спасибо, огромнейшее, откликнувшимся!

То, что предполагаемое решение только для IE, я понимал, однако решив задачу для IE, я надеялся переписать скрипт и для Firefox.

А теперь я понял, что в документ html добавляю еще один такой-же. Косяк.
Интересно, если ли все-таки решение для такой задачи в IE?

Я полагаю, мне нужно не модифицировать тот документ из которого запущен скрипт, а открывать новый документ. Начинаю копать в этом направлении...
...
Рейтинг: 0 / 0
28.05.2009, 20:06
    #36014368
jfm06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xsl преобразование на клиенте игнорирует CSS
О!

Решилось, перетаскиванием ссылку на css из xsl в сам скрипт с функцией!

Код: plaintext
1.
2.
3.
4.
<HTML>
<HEAD>
  <TITLE>sample</TITLE>
  <link href="sd.css" rel="stylesheet" type="text/css"/>
  <SCRIPT language = "javascript">

Неожиданно, и для моего случая вполне подходяще!
При этом, в xsl остались <html> и <head>, однако надо уничтожить и распространить на мозилу...

Спасибо, всем!
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl преобразование на клиенте игнорирует CSS / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]