Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переносится часть тега img (https://javascript.ru/forum/dom-window/85013-perenositsya-chast-tega-img.html)

Chile 04.03.2023 12:21

Переносится часть тега img
 
Добрый день :)

У меня есть скрипт вставки тегов в textarea. Но при вставке img он вставляется вот так:

<img src="/public/images/uploads/6402d2561c615.jpeg
" alt="" />


т. е. переносится на другую строку после расширения файла.

Вот функция, которая это всё делает:

function doImage(obj)
{
	textarea = document.getElementById(obj);
	var url = prompt('Имя изображения:','/public/images/uploads/');
	var scrollTop = textarea.scrollTop;
	var scrollLeft = textarea.scrollLeft;
	if (url != '' && url != null) {
		if (document.selection) {
			textarea.focus();
			var sel = document.selection.createRange();
			sel.text = '<img src="' + url + '" alt="" />';
		} else {
			var len = textarea.value.length;
			var start = textarea.selectionStart;
			var end = textarea.selectionEnd;
			var sel = textarea.value.substring(start, end);
			var rep = '<img src="' + url + '" alt="" />';
			textarea.value =  textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);
			textarea.scrollTop = scrollTop;
			textarea.scrollLeft = scrollLeft;
		}
	}
}


Это кнопка в функции function edToolbar(obj):

document.write("<span name=\"btnPicture\" title=\"Иллюстрация\" onClick=\"doImage('" + obj + "')\">IMG</span>");


Подскажите пожалуйста, почему так происходит и как это исправить?

Chile 04.03.2023 12:24

И если это не сложно, помогите пожалуйста реализовать возможность автоматической вставки в alt="" +url+ (т. е. то же, что вводится вручную в src="".

рони 04.03.2023 12:48

Chile,
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <textarea id="txt" name="" cols="80"></textarea>
    <script>
        function doImage(obj) {
            textarea = document.getElementById(obj);
            var url = prompt('Имя изображения:', '/public/images/uploads/');
            var scrollTop = textarea.scrollTop;
            var scrollLeft = textarea.scrollLeft;
            if (url != null && (url = url.trim())) {
                if (document.selection) {
                    textarea.focus();
                    var sel = document.selection.createRange();
                    sel.text = `<img src="${url}" alt="${url}" />`;
                } else {
                    var len = textarea.value.length;
                    var start = textarea.selectionStart;
                    var end = textarea.selectionEnd;
                    var sel = textarea.value.substring(start, end);
                    var rep = `<img src="${url}" alt="${url}" />`;
                    textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);
                    textarea.scrollTop = scrollTop;
                    textarea.scrollLeft = scrollLeft;
                }
            }
        }
        var obj = 'txt';
        document.write("<span name=\"btnPicture\" title=\"Иллюстрация\" onClick=\"doImage('" + obj + "')\">IMG</span>");
    </script>
</body>

</html>

Chile 04.03.2023 12:59

Цитата:

Сообщение от рони (Сообщение 550992)
Chile,
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <textarea id="txt" name="" cols="80"></textarea>
    <script>
        function doImage(obj) {
            textarea = document.getElementById(obj);
            var url = prompt('Имя изображения:', '/public/images/uploads/');
            var scrollTop = textarea.scrollTop;
            var scrollLeft = textarea.scrollLeft;
            if (url != null && (url = url.trim())) {
                if (document.selection) {
                    textarea.focus();
                    var sel = document.selection.createRange();
                    sel.text = `<img src="${url}" alt="${url}" />`;
                } else {
                    var len = textarea.value.length;
                    var start = textarea.selectionStart;
                    var end = textarea.selectionEnd;
                    var sel = textarea.value.substring(start, end);
                    var rep = `<img src="${url}" alt="${url}" />`;
                    textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);
                    textarea.scrollTop = scrollTop;
                    textarea.scrollLeft = scrollLeft;
                }
            }
        }
        var obj = 'txt';
        document.write("<span name=\"btnPicture\" title=\"Иллюстрация\" onClick=\"doImage('" + obj + "')\">IMG</span>");
    </script>
</body>

</html>

Рони, как всегда выручили! Спасибо! :)


Часовой пояс GMT +3, время: 00:06.