>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >Получить title из URl ? http://forum.mozilla-russia.org/viewtopic.php?id=75556 |
mokujin > 09-05-2020 18:26:48 |
Привет All скрытый текст Выделить код Код:function getTitleFromURL(url) { let xhr = new XMLHttpRequest(), titl="пустышка"; xhr.onload = reqListener; xhr.open('GET', url, true); // HTTP request method, such as "GET", "POST", "PUT", "DELETE", etc. Ignored for non-HTTP(S) URLs. xhr.responseType = 'document'; // если не указывать или выше сделать false , то в синхронном запросе получается регуляркой распарсить текст и вроде норм. Но асинхронный лучше вроде.. xhr.onerror = function() { alert( 'Ошибка ' + this.status ); } xhr.send(); function reqListener () { titl = (this.responseXML.title) ? this.responseXML.title : "неполучилось"; console.log(titl); //alert(tit); здесь пишет в консоль и алертит что надобно. }; alert(titl); // а здесь уже\ещё ничего нет и старое значение "пустышка" }; Подмогните сделать типа как здесь, чтоб ф-ция возвращала нужное. Вот как здесь сделал, для выброса из текста всякой гадости: скрытый текст Выделить код Код:// выбросить из текста спецсимволы................. function getCurTitle(text) { let title, titleRe, badSymbols = new RegExp(/[\!\@\#\(&#\d+;)\$\%\^\&\*\(\)_\+\-\=\<\>\/\\\|\:\.\,\;\`\'\"\?]+/ig); title = (text) ? text : Math.random().toString().slice(2,14); titleRe = title.replace(badSymbols, ""); return titleRe.trim().slice(0,65); }; 09-05-2020 18:43:14 скрытый текст Выделить код Код:// ===================== Получить title из URL ============================================= function getTitleFromURL(url) { let xhr = new XMLHttpRequest(), respText, titl, t; xhr.open('GET', url, false); // true - ассинхроный и не работает xhr.onload = function() { respText = this.responseText; titl = respText.match(/<title>(.*?)<\/title>/); //t = titl[1]; } xhr.onerror = function() { alert( 'Ошибка ' + this.status ); } xhr.send(); // return t.trim(); return titl[1].trim(); }; |