|
Ссылки в поле HTML | ☑ | ||
---|---|---|---|---|
0
grum01
23.11.16
✎
08:44
|
Коллеги, поможите, чем можете. Искал - не нашел (или руки кривые).
Формы простые, платформа 8.3. В общем: на форме есть поле HTML, в нее нужно вставить текст и ссылки. По нажатию на ссылку должна запускаться процедура. ----------------- ЭлементыФормы.ЗадачиСписокHTML.УстановитьТекст("Ошибки: " + "<a href="+НажатиеСсылки()+">"+Колво+" шт.</a>"); ----------------- С параметрами HTML строки не могу совладать. В указанном варианте процедура "НажатиеСсылки()" выполняется сразу при выводе строки. Как сделать запуск процедуры по нажатию на ссылку? |
|||
1
Сергиус
23.11.16
✎
09:27
|
(0)В процедуре формы ПередОткрытием добавляешь текст:
Текст = "<html xmlns=""http://www.w3.org/1999/xhtml""; > |<head> |<title>Тест</title> |<script> |var xForm1C; | |function SetForm1c(Form1c) |{ |xForm1C = Form1c; |} | |function Call1C() |{ | xForm1C.НажатиеСсылки(); |} |</script> | |</head> |<body> |<a onclick='Call1C()' href="+Колво+" шт.</a>" | |</body> |</html>"; ЭлементыФормы.ЗадачиСписокHTML.УстановитьТекст(Текст); Для поля HTML создаешь в свойствах событие ДокументСформирован, и в его процедуре задаешь передачу контекста формы в javascript код: Процедура ПолеHTMLДокументСформирован(Элемент) //Передаем контекст формы в переменную javascript ЭлементыФормы.ПолеHTML.Документ.parentWindow.SetForm1c(ЭтаФорма); КонецПроцедуры |
|||
2
grum01
24.11.16
✎
06:32
|
(1) Ссылка появляется, при нажатии ругается: "Метод объекта не обнаружен (SetForm1c)"
Текст = "<html xmlns=""http://www.w3.org/1999/xhtml"";; > |<head> |<title>Тест</title> |<script> |var xForm1C; | |function SetForm1c(Form1c) |{ |xForm1C = Form1c; |} | |function Call1C() |{ | xForm1C.НажатиеСсылки(); |} |</script> | |</head> |<body> |<a onclick='Call1C()'href=>"+Колво+" шт.</a> | |</body> |</html>"; |
|||
3
grum01
24.11.16
✎
07:25
|
(1) Кстати, почему в ПередОткрытием()? А как быть тогда, если ссылки на форме должны обновляться пока форма открыта (подписка)?
|
|||
4
grum01
24.11.16
✎
08:49
|
В общем ошибка в
ЭлементыФормы.ПолеHTML.Документ.parentWindow.SetForm1c(ЭтаФорма); У parentWindow нет метода SetForm1c (не видит) |
|||
5
shpioleg
24.11.16
✎
08:55
|
Событие ПриНажатии повесь на поле HTML и посмотри в отладчике, что передается в ДанныеСобытия.
|
|||
6
grum01
24.11.16
✎
09:33
|
Объект не поддерживает свойство или метод "НажатиеСсылки"
|
|||
7
grum01
24.11.16
✎
09:36
|
(5) onclick?
|
|||
8
grum01
24.11.16
✎
09:38
|
Мне кажется, что ошибка в SetForm1c(ЭтаФорма).
Получается, что в переменную xForm1C передается сама форма (графическая). А найти там процедуру НажатиеСсылки() не может. |
|||
9
grum01
24.11.16
✎
10:09
|
В общем пробовал по всякому, во всей этой конструкции ошибка при получении функции SetForm1c - не может ее получить
Текст = " |<HTML> |<HEAD> |<script> | |var xForm1C; | |function SetForm1c(Form1c) |{xForm1C = Form1c} | |function Call1C() |{xForm1C.НажатиеСсылки()} | |</script> |</HEAD> |<BODY> | |<a onclick='Call1C()' href=>ССЫЛКА</a> | |</BODY> |</HTML>"; |
|||
10
grum01
24.11.16
✎
10:11
|
Процедура ЗадачиСписокHTMLДокументСформирован(Элемент)
ЭлементыФормы.ЗадачиСписокHTML.Документ.parentWindow.SetForm1c(ЭтаФорма); КонецПроцедуры |
|||
11
Сергиус
24.11.16
✎
10:26
|
(10)В событие поля ДокументСформирован() помещаешь?
|
|||
12
grum01
24.11.16
✎
10:35
|
(11) Да, конечно.
именно после помещения в ДокументСформирован() возникает ошибка "Метод объекта не обнаружен (SetForm1c)" |
|||
13
Вафель
24.11.16
✎
10:52
|
У тебя после нажатия на ссылку переходин в пустую страницу, там срабатывает досформирован, а в пустом доке нет никаких функций
|
|||
14
Вафель
24.11.16
✎
10:52
|
сделай вместо ссылки просто <p>
|
|||
15
Вафель
24.11.16
✎
10:53
|
но нужно будет оформлением поиграться чтоб на ссылку было похоже
|
|||
16
Вафель
24.11.16
✎
10:56
|
И вообще у поля хтмл есть событие нажатие
|
|||
17
Сергиус
24.11.16
✎
11:04
|
||||
18
grum01
24.11.16
✎
11:50
|
(16) Мне не надо нажимать на поле, надо нажимать на ссылку - это разное. На поле планирую размещать несколько ссылок.
|
|||
19
grum01
24.11.16
✎
11:51
|
(14) так тоже не работает
|
|||
20
grum01
24.11.16
✎
11:54
|
(17) Это для всего поля. Мне надо несколько ссылок в одном поле вперемешку с простым текстом. И результаты кликанья на разные ссылки должны быть разными.
|
|||
21
shpioleg
24.11.16
✎
12:00
|
(20) Понятно что для всего.Ты делал как в (5) ? Смотрел что можно вытянуть из фикструктуры ДанныеСобытия?
|
|||
22
shpioleg
24.11.16
✎
12:11
|
+(21) Я так раньше делал. Только у меня не ссылка была, button Добавить.
|
|||
23
grum01
24.11.16
✎
12:47
|
(21) Я не вижу события ПриНажатии на поле html
|
|||
24
Сергиус
24.11.16
✎
13:20
|
(17) у процедуры-обработчика есть параметр pEvtObj, из него можно определить при нажатии на какой элемент она(процедура) была вызвана.
|
|||
25
Сергиус
24.11.16
✎
13:20
|
+(24)посмотри в его свойствах, вот и обрабатывай в коде это.
|
|||
26
Сергиус
24.11.16
✎
13:21
|
+(26)Либо переходи на упр.формы, там мой код из (1) 100% работает.
|
|||
27
grum01
25.11.16
✎
07:46
|
Всем спасибо.
С ситуацией так и не разобрался, как-то неоднозначно все. Пошел другим, "некрасивым" путем: на форму вывожу надпись1 в заголовок которой устанавливаю текст и рядом надпись2, которую делаю гиперссылкой. Надпись2 привязана к надписи1 и надпись1 расширяется в зависимости от длины текста. Код простой, понятный. Визуально выглядит даже лучше, чем html-поле. [url=http://radikal.ru][img]http://s008.radikal.ru/i303/1611/51/0d63d2cb4b31.jpg[/img][/url] |
|||
28
grum01
25.11.16
✎
07:47
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |