Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2015, 14:18   #1
KnyazevSergey
Новичок
Джуниор
 
Регистрация: 24.09.2015
Сообщений: 3
По умолчанию Текст после таблицы

Уважаемые специалисты!
Есть некая задача. На странице выводится простая таблица (!с возможностью редактирования):

Код страницы такой:
Код HTML:
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7601.17514"></HEAD>
<BODY contenteditable="true">
<TABLE style="WIDTH: 100%"  bgColor=#ffffe1>
<TBODY>
<TR borderColor=#ffffe1>
<TD>Text XYZ</TD></TR></TBODY></TABLE>
</BODY></HTML>
Задача состоит в том, чтобы принудить пользователя редактировать текст именно внутри желтенькой таблицы, а не за ее пределами. Но принудить не получается, т.к. за таблицей можно также поставить курсор:


Реально ли сделать так, чтобы эту возможность убрать? Т.е. чтобы браузер "думал", что последний символ в документе - "Z", а не пустой символ после таблицы, как на предыдущем скриншоте. Меня это и устроит. Иными словами, чтобы при открытии страницы, при нажатии мышкой в любом месте ниже таблицы курсор становился в таблице (вот так):
KnyazevSergey вне форума Ответить с цитированием
Старый 24.09.2015, 15:58   #2
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Вопрос Не совсем понятна задача

А если contenteditable="true" переместить из body в Table ?
SQLPowerUser вне форума Ответить с цитированием
Старый 24.09.2015, 18:36   #3
KnyazevSergey
Новичок
Джуниор
 
Регистрация: 24.09.2015
Сообщений: 3
По умолчанию

Да, я это делал. Но в этом случае как показано на скриншоте 3, работать не будет. Курсор нужно будет точно поставить самому мышкой в указанной таблице, это неудобно.

Придется объяснить все-таки цель всего этого. В 1С есть поле HTML документа, куда помещается история общения между сотрудниками. Стоит задача подсвечивать сообщения. Легче всего это реализовать через таблицу. Т.е. каждое новое сообщение находится внутри отдельной таблички.
Так вот при новом открытии сотрудником окна общения необходимо также перемещаться в самый низ документа. Для этого я посылаю сочетание клавиш Ctrl+End (помидорами не кидаться, 1С по-другому не позволяет ).

Если сделать, как ниже, то сочетание клавиш Ctrl+End не сработает.

Код:
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7601.17514"></HEAD>
<BODY contenteditable="false"><!-- Client content begin -->
<TABLE style="WIDTH: 100%" border=1 cellSpacing=3 borderColor=white cellPadding=3 bgColor=#ffffe1>
<TBODY>
<TR borderColor=#ffffe1>
<TD><div contenteditable="true">Text1</div><TD></TR></TBODY></TABLE><!-- Client content end -->
</BODY></HTML>
Я думал, что может есть способ как-то задать свойства содержимого всео документа или таблицы, чтобы не появлялась лишняя строка после таблицы
Либо может существует javascript, который способен искусственно поставить курсор там где надо в html-документе (т.е. в нашем примере сразу после буквы "Z").
Тогда указанный вами способ подойдет.
Подскажите, пожалуйста, в какую сторону хотя бы копать.
KnyazevSergey вне форума Ответить с цитированием
Старый 24.09.2015, 19:04   #4
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Восклицание Не уверен, но вдруг...

Примерно так
Код HTML:
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7601.17514"></HEAD>
<style>
  #txt1 {margin:0; width:100%; border:0; background:#ffffe1;}
</style>
<BODY contenteditable="false"><!-- Client content begin -->
<TABLE style="WIDTH: 100%" border=1 cellSpacing=3 borderColor=white cellPadding=3 bgColor=#ffffe1>
<TBODY>
<TR borderColor=#ffffe1>
<TD><input id="txt1" value="Text1"><TD></TR>
</TBODY>
</TABLE><!-- Client content end -->

<script>
var el = document.getElementById('txt1');
el.focus();
el.selectionStart = el.value.length;
</script>
</BODY>
</HTML>
SQLPowerUser вне форума Ответить с цитированием
Старый 25.09.2015, 10:37   #5
KnyazevSergey
Новичок
Джуниор
 
Регистрация: 24.09.2015
Сообщений: 3
По умолчанию

Спасибо за помощь. Не буду больше мучать. 1Ска не поддерживает такие скрипты с установкой фокуса. Она просто не отрабатывает их. Старый в ней браузер, с ограниченными возможностями.

Вообщем пришел все-таки к решению, которое пока устраивает (вернее, это лучше чем ничего). В параметрах таблицы указываю align="LEFT". И курсор после таблицы становится уже не снизу, а справа от таблицы (т.е. строки как такой ниже таблицы уже нет). После этого при загрузке документа посылаю нажатие клавиши "влево" (опять прошу помидорами не кидаться, другого не вижу решения).
И курсор становится прямо в таблице.
При этом ниже таблицы пользователь уже курсор мышкой не поставит! Что вообщем-то и являлось целью.

Т.е. получилось так:
Код:
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7601.17514"></HEAD>
<BODY contenteditable="true">
<TABLE style="WIDTH: 100%"  bgColor=#ffffe1 align="LEFT">
<TBODY>
<TR borderColor=#ffffe1>
<TD>Text XYZ</TD></TR></TBODY></TABLE>
</BODY></HTML>
Спасибо еще раз.
KnyazevSergey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать текст содержащийся в ячейке таблицы и вставить этот текст в место документа помеченное закладкой. LiliPOOtin Microsoft Office Word 3 17.04.2013 19:51
После конвертации из pdf не форматируется текст Drt Microsoft Office Word 1 05.05.2011 21:52
Текст не сохраняется после открытия через OpenDialog Кинельски Общие вопросы Delphi 5 25.04.2011 18:46
откинуть текст после названия домена designer999 Общие вопросы Delphi 12 20.04.2010 18:18
Текст после тега <li> Antoha HTML и CSS 2 07.08.2009 13:16