Имя: Пароль:
1C
 
Добавить CSS для Поля HTML Документа
,
0 Alexey87
 
15.05.20
15:08
На форме есть ПолеHTMLДокумента, передаю ему URL, отображается результат, все ок.
Обращаю внимание, что я передаю именно URL, и дальше выполняется загрузка; т.е. я не передаю уже готовый HTML.
Как в моем случае сделать так, чтобы результат отображался с использованием определенной CSS? (CSS сейчас в виде отдельного файла)

Здесь искал, но того, что мне нужно нет: Поле HTML документа и CSS
1 ДенисЧ
 
15.05.20
15:12
Вписать link в сам html?
2 Alexey87
 
15.05.20
15:22
(1)а в какой момент это делать?
Пока я не использую ПолеHTMLДокумента.Перейти по сути и html нет.
А если делать после, не совсем понятно, как обновить отображение html с учетом примененного css.
3 ДенисЧ
 
15.05.20
15:32
(2) В сам документ. Который на сервере.
4 Garykom
 
гуру
15.05.20
15:35
(0) Тебе кто мешает передать url, дождаться загрузки в ПолеHTMLДокумента, затем взять там текст html, поправить его и записать назад?
5 Garykom
 
гуру
15.05.20
15:37
(4)+ ну или можно HTTPСоединение по url и полученный (не забыть про возможные редиректы) текст в ПолеHTMLДокумента
6 Garykom
 
гуру
15.05.20
15:39
(3) Да хороший вариант еще перехватить обращение и подменить содержимое страницы.
Опсосы так любят на сайтиках без ssl делать рекламу свою подставляя.
7 Alexey87
 
15.05.20
15:45
(4)вообще я думал, что это изварат; но так изначально и сделал.
Проблема в том, что через раз после загрузки страницы указанное содержимое пустое: ЭлементыФормы.ПолеHTMLДокумента1.Документ.Body.innerHTML. Хотя при этом все отображается корректно. Почему так происходит не совсем непонятно.
8 Alexey87
 
15.05.20
15:46
(7)*не совсем понятно
9 Сияющий в темноте
 
15.05.20
19:35
если документ не готов,то он виден,но через обьектную модель недоступен.

вписать или линк или сами стили в документ проще всего,чем что-то потом править.

а так,событие зааершения загрузки документа как раз для того,чтобы обновлять.
10 Alexey87
 
16.05.20
23:51
(9)несколько вопросов:

1. Событие окончания загрузки - это ДокументСформирован()?
2. Я правильно понимаю, что вписать стили или линк в документ - это исправить содержимое между тегами <style type="text/css"> и </style>? Или так можно только вписать сами стили; а вписать линк можно как-то изящнее?
11 Сияющий в темноте
 
17.05.20
12:09
1.да
2. линк вписывается через таг link rel=stylesheet href=адрес таблицы стилей
стиль да.
12 Alexey87
 
17.05.20
13:45
(11) Спасибо, буду пробовать!
13 Alexey87
 
18.05.20
15:01
(11)в итоге все получилось, добавил в ДокументСформирован() в начало HTML строку(толстый клиент):

"<link rel=""stylesheet"" href=""D:\Folder\Table.css"">"
14 Alexey87
 
20.05.20
15:21
Попробовал сделать то же самое в управляемом приложении.
Реакции на вставку линка с css вообще ноль, отображение ПоляHTMLДокумента не меняется.

Делаю так же - &НаКлиенте в самое начало добавляю строку из (13), событие ПолеHTMLДокументаДокументСформирован().

Есть мысли, почему не работает?
15 Garykom
 
гуру
20.05.20
15:45
16 Alexey87
 
20.05.20
15:56
(15)строка из (13) так и оформлена
17 Garykom
 
гуру
20.05.20
16:05
(16) А "D:\Folder\Table.css" на клиенте лежит?
18 Alexey87
 
20.05.20
16:43
(17)Да, но я же и запускаю в толстом клиенте.

Вобщем, когда добавлял линк css все равно не отрабатывал хоть в толстом клиенте, хоть в тонком (отображалось как HTML из блокнота).
Есть изящное решение, если кому понадобится, вместо всех этих танцев с бубном:

style1 = ЭлементыФормы.ПолеHTMLДокумента1.Документ.createElement("style");
style1.innerHTML = ПолучитьМакет("ТекстCSS").ПолучитьТекст();
ЭлементыФормы.ПолеHTMLДокумента1.Документ.head.appendChild(style1);