Якорь в поле HTML-документа

1. itriot11 94 29.07.13 13:40 Сейчас в теме
На основе http://infostart.ru/public/75313/ и http://infostart.ru/public/184976/ пишу собственный редактор. Проблема в том, что не могу вставить ссылку на якорь текста. Сначала выполняется это:
&НаКлиенте
Процедура СоздатьЯкорь(Команда)
	SelectionText = СокрЛП(Элементы.ПолеHTMLДокумента.Document.Selection.CreateRange().Text);
	Если SelectionText = "" Тогда
		Сообщить("Перед вставкой якоря - выделите
				 |текст, являющийся её представлением!");	
		Возврат;		 
	КонецЕсли;
    	Документ.execCommand("CreateBookmark", Ложь, SelectionText);
	Якорь = SelectionText;
	ПоказатьРежимыКнопок();
КонецПроцедуры
Показать


те выделяет текст, жмет кнопку и у выделения создается якорь. Далее:

&НаКлиенте
Процедура ВставитьЯкорь(Команда)
	Если СокрЛП(Якорь) = "" Тогда
		Сообщить("Перед вставкой якоря - выделите
				 |текст, являющийся её представлением!");	
		Возврат;		 
	КонецЕсли;
	Гиперссылка = Якорь;
	Документ.execCommand("CreateLink", Ложь, Гиперссылка);
	ПоказатьРежимыКнопок();
КонецПроцедуры
Показать


снова выделяем текст, который будет представлением ссылки и собственно вставляем ее текст с # вначале.
Полученный HTML-код должен быть,например, такой:

<P><A name=bottom>bottom</A> Низ</P>
<P> </P>
<P><A name=top>top</A> Верх</P>


а получается:

<P><A name=bottom>bottom</A> Низ</P>
<P> </P>
<P><A name=top>top</A> Верх</P>


те желаемого результата - перехода не получаю.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AlexKo 102 07.08.13 08:50 Сейчас в теме
3. itriot11 94 07.08.13 11:30 Сейчас в теме
4. AlexKo 102 07.08.13 11:34 Сейчас в теме
Не работают якоря похоже в текущем релизе:)

Написал запрос на форуме 1С, жду ответа.
5. itriot11 94 07.08.13 11:52 Сейчас в теме
(4) AlexKo, Ну значит нифига не разобрался))
Смотрел в сторону вот этого ЭлементЯкорьHTML? у меня 8.3.2.172.
Как варианты имею:
1) создан name в нужном месте, после ПолеHTMДокумента перевести в ДокументHTML и там в коллекции найти якорь. Правда ХЗ куда его вставлять...
2) создать name в режиме редактора, оставить ссылки как есть, те с about:blank. А после перехода в режим просмотра выгружать страницу во временный каталог и заново создаввть ссылки, но уже с новым адресом типа href = "С://TEMP/TEST.HTML#нужныйNAME"
6. AlexKo 102 08.08.13 07:37 Сейчас в теме
(5) itriot11,
Для тонкого /толстого клиента - Ошибка по якорям зарегистрирована 1С.
Якоря работают корректно на мобильных устройствах, когда мобильное приложение создаешь.
7. vandalsvq 1545 10.10.13 23:09 Сейчас в теме
Сегодня только (на 8.3.4) испытывал "якоря". В итоге: если страницу открываешь путем передачи текста HTML, то якоря не работают. Если же эту страницу сохранить как файл и открыть по пути (адресу) то все в порядке (правда картинки подставленные в виде адреса временного хранилища не работают).

На самом деле, якоря надо бы им поправить. Если ошибка действительно зарегистрирована в 1С, дайте ссылку
8. vandalsvq 1545 05.02.14 01:55 Сейчас в теме
Решение вопроса в целом возможно при помощи JQuery библиотеки.

Подключаем, и дописываем вот такой вот скриптик:
<sc ript>
	$(document).ready(function(){
		$('a').click(function() {
			var elementClick = $(this).attr('href');
			var firstChar = elementClick.substr(0,1);
			if (firstChar=='#') {
				var destination = $(elementClick).offset().top;
				window.scroll(0, destination);
				return false;}
		});
	})
</sc ript>
Показать


И "вуаля"
9. itriot11 94 12.02.14 16:00 Сейчас в теме
(8) vandalsvq, признаться не в курсе как эту самую библиотеку подключить...не могли бы расписать попроще?
10. vandalsvq 1545 13.02.14 09:36 Сейчас в теме
(9) itriot11,
<sc ript src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></sc ript>

Это если вас устроит с сайта Google (есть подключение к нету). Если нет то качаете библиотеку и подключаете ее содержимое в тег "<sc ript>". Поскольку с винта путь читается только относительный. И если вы в поле HTML документа даете просто html код то соответственно относительный путь применить не получится.
11. Dilovar9 64 28.07.19 11:58 Сейчас в теме
(8) В 8.3.14 с WebKit не заработало, сделал так

	<sc ript>
		$(document).ready(function(){
			$('a').click(function() {
				var elementClick = $(this).attr('href');
				var firstChar = elementClick.substr(0,1);
				if (firstChar=='#') {					
					$('html, body').animate({
						scrollTop: parseInt($(elementClick).offset().top)
					}, 1000);					
					return false;
				}
			});
		}) 
	</sc ript> 
Показать
12. itriot11 94 29.07.19 15:02 Сейчас в теме
(11) возможно вам стоит оформить это в качестве публикации?)
13. Dilovar9 64 29.07.19 15:08 Сейчас в теме
(12) Думаю, стоит )
user1725319; itriot11; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот