Нажмите ENTER в <textarea>, чтобы разбить строку - PullRequest
0 голосов
/ 14 октября 2018

Я считаю себя новичком в веб-разработке, и у меня возникают некоторые проблемы с вводом переносов строк в textarea.

Мой код выглядит следующим образом (чистый javascript)

function upldNot(){ 
    xhttp = new XMLHttpRequest();
    var d = document.getElementById("textarea-input").value;

    d = d.replace(/(\n|\r\n)/g, "<br>$1");   // added this line to break lines

    xhttp.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200){
            document.getElementById("output").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET","upload_not.php?d="+d, true);
    xhttp.send();
}

Моя цель - отправить входные данные из текстовой области в php.file, который загружает их в базу данных, изатем отобразите все строки таблицы.(Это прекрасно работает)

Кроме того, когда входные данные содержат «ввод», они должны читаться как разрыв строки.Мой код работает в IE отлично, но не в Chrome.Chrome возвращает следующее сообщение:

[Устаревание] Запросы ресурсов, URL-адреса которых содержали как удаленные пробельные символы (\n, \r, \t), так и символы меньше, чем (<), блокируются.Удалите символы новой строки и закодируйте меньше символов из таких мест, как значения атрибутов элемента, чтобы загрузить эти ресурсы.См. https://www.chromestatus.com/feature/5735596811091968 для получения более подробной информации.

Я даже не уверен, что именно это означает.Не могли бы вы помочь мне с советами или другими решениями, которые поддерживаются большинством браузеров?

Большое спасибо, и очень жаль за этот глупый вопрос.

1 Ответ

0 голосов
/ 14 октября 2018

Содержимое, которое вы добавляете в URL, содержит html-элементы <br/>, и в соответствии с ошибкой chrome оно не допускает такого содержимого в URL-запросе, отправленном из браузера.

Вы можете попробовать encodeURI(d) перед добавлением его в URL.

xhttp.open("GET","upload_not.php?d="+encodeURI(d), true);

...