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

Есть скрипт:
Код: 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
xsl преобразование на клиенте игнорирует CSS
    #36004318
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jfm06В чем может быть дело?
В том, что CSS не стягивается с сервера. У вас CSS подключается из текущего каталога. При преобразовании на сервере - это серверный каталог, на клиенте - клиентский.

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

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

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

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

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

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

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

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

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


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