Использование XMLHttpRequest для выполнения запроса get к var, но также и создание возврата каретки - PullRequest
0 голосов
/ 09 марта 2020

Перед тем как начать, просто хотел сказать, что я новичок в javascript. Но я пытаюсь выполнить запрос GET к URL, который будет возвращать строку - просто очень простой текст, затем создать переменную и использовать для установки атрибута для элемента html.

Вот мой код:

    var vendor;
var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function() { 
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }

        anHttpRequest.open( "GET", aUrl, true );            
        anHttpRequest.send( null );
    }
}
var client = new HttpClient();
client.get('http://my.example.com/file.txt', function(response) {
    mydata = response;
    document.querySelector(".btn").setAttribute("onclick", "window.open('https://" + mydata + ".example.com')");

});

Я хочу, чтобы содержимое "file.txt" использовалось в переменной mydata, затем используйте setAttribute для изменения свойств onclick.

Он возвращает ответ, но добавляет к нему возврат каретки, и при использовании консоли chrome javascript для отображения «mydata» возвращается:

"thetext
"

, поэтому каретка return после "thetext".

, и мой setAttribute в итоге будет выглядеть так:

<button class="btn btn-outline-dark btn-lg" onclick="window.open('https://textfromfile
.example.com')" ;="" type="button" name="buttonname">mybutton</button>

Таким образом, после textfromfile есть возврат каретки.

1 Ответ

0 голосов
/ 09 марта 2020

Я предполагаю, что возврат каретки также существует в файле TXT, поэтому, конечно, он также возвращается!

Однако вы можете легко удалить его, используя trim:

mydata = response.trim()

(Обратите внимание, что это также удалит конечные пробелы .)


В примечании, вместо установки onclick таким образом, будет лучше установить атрибут и иметь обработчик клика stati c, который ссылается на этот атрибут. Или даже лучше, поскольку кажется, что вы используете Bootstrap: вы можете использовать обычную ссылку с <a class="btn">, открыть ее в новом окне, используя target="_blank", а затем просто установить атрибут href из своего кода .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...