Имя: Пароль:
1C
 
Перетаскивание в поле HTML
0 skyadmin
 
24.04.24
11:21
Есть простой HTML

<div style="height:100% width:100% ondrop="dropHandler(event);" ondragover="dragOverHandler(event);"/>
function dropHandler(event) {
	alert(1);
}
function dragOverHandler(event) {
	event.preventDefault(); // Предотвращаем стандартное поведение, чтобы разрешить drop
}


Если этот HTML из файла и открыть в браузере, то при перетаскивании в окно, отображается "1".
Но когда добавляю этот HTML на форму (не важно обычную или управляемую) то поле недоступно для перетаскивания, при перетаскивании файла (с рабочего стола) в это поле открывается сам файл, а нужно чтобы отобразилась "1".

Замечено, если внутри поля выполнить процедуру перетаскивания (из самого в себя) то после этой манипуляции начинает работать перетаскивание с рабочего стола или ссылки из браузера.
Как сделать чтобы при открытии формы в это поле можно было сразу бросить ссылку, без манипуляций, или как-то программно провести эти манипуляции, чтобы поле инициализироваться для перетаскивания снаружи при открытии формы?
1 Ёпрст
 
24.04.24
11:28
2 skyadmin
 
24.04.24
11:32
html файл целиком

[CODE]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
    body, html {
        margin: 0;
        padding: 0;
        height: 100%;
        overflow: hidden;
    }
    .slider {
        width: 100%;
        height: 100%;
        display: flex;
        position: relative;
    }
</style>
</head>
<body>
<div class="slider" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);">
    
</div>
<script>
function dropHandler(event) {
    event.preventDefault(); // Предотвращаем стандартное поведение
    alert(1);
}
function dragOverHandler(event) {
    event.preventDefault(); // Предотвращаем стандартное поведение, чтобы разрешить drop
}
</script>

</body>
</html>
[/CODE]
3 skyadmin
 
24.04.24
11:36
(1) Скачал обработку, такая же фигня.
Перетаскиваю файлы, иконка под курсором не дроповская, а зеленый плюсик, при отпускании файлов просто ничего не происходит.
4 skyadmin
 
24.04.24
11:41
Вот такая бяда
5 skyadmin
 
24.04.24
11:42
Почему-то gifка не проигрывается
https://cloud.mail.ru/public/dMNx/Ta6be9hnJ
6 Ёпрст
 
24.04.24
11:42
(3) каменты почитай, там написано, что нужно добавить в код
7 Ёпрст
 
24.04.24
11:46
таких поделок много
https://infostart.ru/1c/tools/1739512/
8 skyadmin
 
24.04.24
11:53
я все эти поделки пересмотрел по несколько раз, похоже только  на 8.3.17 это работало до появления webkit)
9 Ёпрст
 
24.04.24
11:55
(8) просто драг/дроп, например, картинки работает в поле хтмл в 23 релизе, на счет перетаскивания снаружи, могу посмотреть на досуге.
10 skyadmin
 
24.04.24
11:57
(7) Тут сделано отдельное поле для переноса, а мне нужно в самом документе, причем определять координаты по x,y
11 skyadmin
 
24.04.24
11:58
В поле картинки у меня тоже работает, нужно в поле HTML
12 skyadmin
 
24.04.24
12:03
(9) Но что интересно если в поле HTML  сделать два блока DIV (например с картинками) и дропнуть один блок на другой, то после этой махинации все начинает работать как надо)
13 Ёпрст
 
24.04.24
12:44
(0) На вот, занимайся


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ПолеHTML = "<html> 
	|	<style> 
	|.dragndrop {
	|	width: 100%; /* устанавливаем ширину блока */
	|	height: 100%; /* устанавливаем высоту блока */
	|	border: 3px solid orange; /* задаём сплошную границу шириной 3px оранжевого цвета */
	|	padding: 30px; /* устанавливаем внутренние отступы элемента со всех сторон */
	|	text-align: center; /* устанавливаем выравнивание текста по центру */
	|	background: cornsilk; /* задаём цвет заднего фона */
	|	float: left; /* блок становится плавающим элементом, смещенным влево */
	|}
	|</style>
	|<head>
	|<body>
	|<div class = ""dragndrop"" ondrop=""drop(event)"" draggable=""true"" contenteditable=""true"">Кидай сюда!</div>
	|<script>
	|function drop(ev) {
	|alert(""кинули Васю""); 
	|}      
	|;
	|</script>
	|</body> 
	|</head>
	|";	
КонецПроцедуры
14 skyadmin
 
24.04.24
13:12
(13) Благодарю, в этом примере сразу работает. Буду разбираться
15 skyadmin
 
24.04.24
13:20
оказалось что все портила эта функция)

function dragOverHandler(event) {
    event.preventDefault(); // Предотвращаем стандартное поведение, чтобы разрешить drop
}