1. itriot11 75 29.07.13 13:40 Сейчас в теме

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

На основе 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 99 07.08.13 08:50 Сейчас в теме
3. itriot11 75 07.08.13 11:30 Сейчас в теме
4. AlexKo 99 07.08.13 11:34 Сейчас в теме
Не работают якоря похоже в текущем релизе:)

Написал запрос на форуме 1С, жду ответа.
5. itriot11 75 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 99 08.08.13 07:37 Сейчас в теме
(5) itriot11,
Для тонкого /толстого клиента - Ошибка по якорям зарегистрирована 1С.
Якоря работают корректно на мобильных устройствах, когда мобильное приложение создаешь.
7. vandalsvq 1142 10.10.13 23:09 Сейчас в теме
Сегодня только (на 8.3.4) испытывал "якоря". В итоге: если страницу открываешь путем передачи текста HTML, то якоря не работают. Если же эту страницу сохранить как файл и открыть по пути (адресу) то все в порядке (правда картинки подставленные в виде адреса временного хранилища не работают).

На самом деле, якоря надо бы им поправить. Если ошибка действительно зарегистрирована в 1С, дайте ссылку
8. vandalsvq 1142 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 75 12.02.14 16:00 Сейчас в теме
(8) vandalsvq, признаться не в курсе как эту самую библиотеку подключить...не могли бы расписать попроще?
10. vandalsvq 1142 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 40 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 75 29.07.19 15:02 Сейчас в теме
(11) возможно вам стоит оформить это в качестве публикации?)
13. Dilovar9 40 29.07.19 15:08 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день